设为首页 加入收藏

TOP

计时器(十九)
2010-12-30 21:12:14 来源: 作者: 【 】 浏览:16596
Tags:计时器
me函式。

如果使用者更改了任何系统设定,则会将WM_SETTINGCHANGE讯息传送给所有的应用程式。DIGCLOCK通过再次呼叫GetLocaleInfo处理这个讯息。以这种方式,您可以在「控制台」的「区域设定」 程式中进行不同的设定来实验一下。

在理论上,DIGCLOCK也应该使用LOCALE_STIME识别字呼叫GetLocaleInfo。这会传回使用者为时间的小时、分钟和秒等单个部分选择的字元。因为DIGCLOCK被设定为仅显示冒号,所以不管选择了什么,都会得到冒号。要指出时间是A.M.或P.M.,应用程式可以使用带有LOCALE_S1159和LOCALE_S2359识别字的GetLocaleInfo函式。这些识别字使程式获得适合於使用者国家/地区和语言的字串。

我们也可以让DIGCLOCK处理WM_TIMECHANGE讯息,这样它将系统时间与日期发生变化的讯息通知应用程式。DIGCLOCK因WM_TIMER讯息而每秒更新一次,实际上没有必要这样作,对WM_TIMECHANGE讯息的处理使得每分钟更新一次的时钟变得更为合理。

建立类比时钟
 

类比时钟不必关心国际化问题,但是由於图形所引起的复杂性却抵消了这种简化。为了正确地产生时钟,您需要知道一些三角函数。CLOCK如程式8-4所示。

 程式8-4 CLOCK
CLOCK.C
/*---------------------------------------------------------------------------
CLOCK.C -- Analog Clock Program
(c) Charles Petzold, 1998
---------------------------------------------------------------------------*/

#include <windows.h>
#include <math.h>

#define ID_TIMER 1
#define TWOPI (2 * 3.14159)

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,
首页 上一页 16 17 18 19 20 21 22 下一页 尾页 19/27/27
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇子视窗控制项 下一篇滑鼠

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: