当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 电子式时钟

VC++
面试题目:猫吃老鼠问题的求解
一个最基本的有限元计算程序
简单的表达式求值
C程序移植到VC开发环境下
一个小语言的词法分析程序
A/B 向上取整的方法
马走日棋盘算法
一种随机抽题的简单算法
clone模式在平衡排序二叉树实现中的应用
递归的应用 -- 最简单分形图形实现
比较数据排序前后的查找次数
根据前序和中序序列生成二叉树
如何用CZip/CUnzip类压缩/解压缩文件
使用 random_shuffle() 算法随机化序列元素
Ceb解除打印屏蔽实战
基于SHA-256的HMAC文件校验器
模拟信息加密流程图简介
关于数据校验
浅谈利用RSA算法防止非法注册机的制作
加密它:用新的高级加密标准(AES)保持你的数据安全

VC++ 中的 电子式时钟


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 89 ::
收藏到网摘: n/a

电子式时钟

作者:李宏亮

下载源代码
 
   看了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,欢迎指正。