在pc机上,我们随处到都可以看到时间和时钟的显示,出于好奇我自己封装了一个时钟的类。通过这个类我们可以任意更换背景,使得时钟的显示更加漂亮。
现在先介绍一下怎么使用这个类:
//定义一个对象
CClock g_Clock;
//初始化类成员
//设置背景图片,注意图片格式为Bmp
RECT rcImag ={0,0,329,314}; //图片中的哪些区域
g_Clock.SetBkImage(TEXT("E://Project//WinXP//TempProject//Clock//Clock//ddd.bmp"),rcImag);
//设置时钟指针的颜色
g_Clock.SetColor(RGB(255,255,255));
//设置时钟指针的宽度
g_Clock.SetHandWidth(2);
现在前期的工作完成了,剩下就是显示出时钟了!
//绘制时钟其中rcImage为RECT结构,指出要绘画的位置。
g_Clock.DrawHands(hdc,rcImag);
这些都完成之后,在我们显示器上应该能看到一个漂亮的时钟了。
不过一会你会发现这个时钟不能跑,都是静止在那里的,是的没有错!通过调用g_Clock.DrawHands(hdc,rcImag)只是把这一刻的时间绘制出来了。如果想时钟能跑起来的话一定都不难,你可以自己创建一个线程然后每隔500ms调用一次g_Clock.DrawHands(hdc,rcImag) 或者在你的程序中装置一个定时器,同样是每隔500ms调用一次g_Clock.DrawHands(hdc,rcImag)。
代码实现:
MemDC.h
MemDC.cpp
Clock.h
Clock.cpp
测试代码:
效果图: