首页 IP地址查询 | Alexa排名查询 | 手机归属地查询
设为首页 收藏本站
  • 网络编程网络编程
  • 软件编程软件编程
  • 数据库技术数据库技术
  • 编程学院
  • 业界资讯 业界资讯
  • 源码中心源码中心
  • 会员中心会员中心
  • 页面导航: 首页MFC组件static控件 → 电子式时钟

    电子式时钟

    发布:李宏亮 发布日期:2008-07-03 字体:[增加 减小] 类型:转载

    下载源代码

      看了VC知识库《在线杂志》第27期的“电子八段管的仿真”,确实不错,但失真严重。认识咱们知识库这么久,学了不少东西,我也该作点"贡献"了,于是自己动手也写一个。本文的示例程序界面如图一所示:


    图一

    程序说明

      首先建立一个基于对话框的工程,导入数码位图资源,直接在对话框类CMy2Dlg中添加类mytime
    程序中的mytime类主要提供两个函数接口:一个是set()用来设置显示位置;一个是myfun()用来设置显示数字来显示。

    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,欢迎指正。


    为配合网络严查,文章评论将关闭敬请谅解.
    同 类 文 章
    最 近 更 新
    热 点 排 行