My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > WINDOWS标准界面元素
电子式时钟
作者:未知 时间:2005-07-20 14:11 出处:VC知识库 责编:MyFAQ
              摘要:电子式时钟

电子式时钟

作者:李宏亮

下载源代码
 
   看了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,欢迎指正。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有