昨天看到一个制作数字时钟的程序,觉得很有意思,便拿来研究了一下,为了防止忘记,先总结一下,以备不时只需。
一 整个程序的框架
数字时钟程序是使用了基于对话框的框架来编程的。包括了四个类:CAoutDlg,CDigitalClock,CMyClockApp,CMyClockDlg类,其中,CDigitalClock类中包含了对数字时钟显示所需要的变量和函数,且他是由CStatic类派生而来。
1)先在对话框中放置了一个静态文档,并与CDigitalClock类的对象进行关联,以确保能够完成数据间的传递。
2)在CMyClockDlg类中添加时间消息ONTimer( ),并在对话框初始化函数中使用SetTimer( )函数来触发事件消息。
3)在时间消息响应函数ONTimer()中使用CTime::GetCurrentTime()获取当前的时间并传递给CDigitalClock类的变量,以保存现时刻的时间
4)得到了当前的时间之后,最重要的是要显示出这个时间。程序采用了七段式的数字显示方式,数字在显示过程中,先定位了离静态文档起始点的距离,数字与数字之间的间隔,以及数字的宽度,而数字的高度则是两个宽度,数字的宽度大小是控件高度的一半。要显示出的时间的格式是小时:分钟:秒,且是24小时格式显示,这就需要有两个数字来显示小时,两个数字来显示分钟以及两个数字来显示秒,就占了6个数字的宽度,为了保此美观,中间的"点"也占一个数字的宽度,这样,整个显示数字区的应该是8×数字的宽度+3×数字之间的间隔。
使用m_width表示数字的宽度,m_xmargin表示