当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 电子式时钟
电子式时钟 下载源代码 class mytime{public: int change(char); mytime(); ~mytime(); CString m_time; void myfun(CString temp);//显示数字字符串 void set(CDialog *,int tnum,int tx,int ty,int tspace);//设置显示位置 CStatic *m_pictur[20];// 静态图 指针 数组 int num;// 静态图个数 int x;// 起始X坐标 int y;// 起始Y坐标 int space;// 各数码之间 间距}; 主要成员函数set()和myfun(): void mytime::myfun(CString temp){ m_time=temp; int mynum=m_time.GetLength(); for(int k=0;k<num-mynum;k++)//添加前面空图标显示 { CImageList m_imgList; m_imgList.Create(IDB_BITMAP1,12, 1, RGB(255,255,255));//创建位图链 每个位图12像素 HICON myico= m_imgList.ExtractIcon(10); //取出图标 m_pictur[k]->SetIcon(myico);//设置显示的图标 } for(int i=k;i<num;i++)//添加数字图标显示 { CImageList m_imgList; m_imgList.Create(IDB_BITMAP1,12, 1, RGB(255,255,255)); HICON myico= m_imgList.ExtractIcon(change(m_time[i-k])); m_pictur[i]->SetIcon(myico); } } void mytime::set(CDialog *parent,int tnum,int tx,int ty,int tspace){ CMy2Dlg *mypar=(CMy2Dlg*)parent; for(int i=0;i<num;i++)// 删除以前分配的 delete *(m_pictur+i); // 设置各成员变量 num=tnum; x=tx;y=ty;space=tspace; for(int j=0;j<num;j++)//重新分配 m_pictur[j]=new(CStatic); for(int k=0;k<num;k++) { //确定显示位置 CRect aa1(x+k*(space+12),y,40+x+k*(space+12),40+y); m_pictur[k]->Create(NULL,SS_ICON,aa1,mypar,1);// 创建静态图标控件 m_pictur[k]->ShowWindow(true); }} 然后在CMy2Dlg类中加入CMy2Dlg::OnTimer()消息响应函数以实现时钟功能,其它具体代码看源码内有详细说明。程序中难免有不足和BUG,欢迎指正。 |
评论 (0) All