Chinaunix首页 | 论坛 | 博客
  • 博客访问: 578566
  • 博文数量: 752
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(752)

文章存档

2011年(1)

2008年(751)

我的朋友

分类:

2008-10-13 16:47:09

电子式时钟

作者:


 
   看了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;kSetIcon(myico);//设置显示的图标		
	}
	for(int i=k;iSetIcon(myico);	
	}	
}
void mytime::set(CDialog *parent,int tnum,int tx,int ty,int tspace)
{
	CMy2Dlg *mypar=(CMy2Dlg*)parent;
	for(int i=0;iCreate(NULL,SS_ICON,aa1,mypar,1);// 创建静态图标控件
		m_pictur[k]->ShowWindow(true);
	}
}   
  然后在CMy2Dlg类中加入CMy2Dlg::OnTimer()消息响应函数以实现时钟功能,其它具体代码看源码内有详细说明。
程序中难免有不足和BUG,欢迎指正。
--------------------next---------------------

Petzold的《Windows程序设计》里也有这个,他用gdi画的。 ( annidy 发表于 2008-8-28 10:56:00)
 
要改一下!
严重的GDI资源泄露! ( wolong98 发表于 2004-12-28 15:38:00)
 
是有几分钟后就不再显示这个问题。
可能是ExtractIcon函数引起的。把m_imgList和myico改成成员变量让ExtractIcon函数在构造函数内执行。
具体更改如下:
1.成员变量声明:
CImageList m_imgList;
HICON myico[16];

2.构造函数:
mytime::mytime()
{
m_time=_T("");
num=0;
m_imgList.Create(IDB_BITMAP1,12, 1, RGB(255,255,255));//创建位图链 每个位图12像素
for(int i=0;i<16;i++)//释放图标
{
myico[i]= m_imgList.ExtractIcon(i);
}
}

3.myfun函数:
void mytime::myfun(CString temp)
{
m_time=temp;
int mynum=m_time.GetLength();
for(int k=0;k {
m_pictur[k]->SetIcon(myico[10]);//设置显示的图标
}
for(int i=k;i {
m_pictur[i]->SetIcon(myico[change(m_time[i-k])]);
}
} ( lhongliangi 发表于 2004-7-13 13:12:00)
 
问题:几分钟后就不再显示时间,连窗口标题的图标也没了。 ( vcxian 发表于 2004-7-8 13:13:00)
 
不用位图也没有太大难度,只是要一点耐心...慢慢用gdi画 ( redcheek 发表于 2004-7-6 12:42:00)
 
偶记得在codeproject还是codeguru上有一个不用位图资源的,也可以显示成这个样子,当时看到,甚是佩服。各位有兴趣可以找一找 ( yulincat 发表于 2004-7-5 18:25:00)
 
.......................................................

--------------------next---------------------

阅读(197) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~