文档介绍:2011-06-01
VC中OnTimer()函数使用
文章分类:C++编程,VC使用,MFC开发
关于OnTimer()函数的填写,对于CDialog,可以Ctrl+W中添加;
 
对于SetTimer可以在初始化当中添加!
 
OnTimer()函数是响应用SetTimer()函数设定的时钟发送的时钟消息的,你没设定时钟,就不会有时钟消息,OnTimer()里的语句当然也不会被调用。
 
为类添加WM_TIMER消息响应,会看到类中多了个OnTimer(UINT nIDEvent)。然后用SetTimer(1,10,NULL)就行了。第一个参数是ID,第二个是间隔时间,单位是毫秒,第3个是响应函数,因为要在OnTimer(UINT nIDEvent)里面做响应操作,所以此处给个NULL就行了。
 
Timer事件,即定时器事件,是在游戏编程中,经常使用的一个事件。借助它可以产生定时执行动作的效果。这篇文章,就和大家一起探讨一下如何使用SetTimer()函数。
1、SetTimer定义在那里?
 
SetTimer表示的是定义个定时器。根据定义指定的窗口,在指定的窗口(CWnd)中实现OnTimer事件,这样,就可以相应事件了。
SetTimer有两个函数。一个是全局的函数::SetTimer()
Cpp代码
UINT SetTimer(    
HWND hWnd, // handle of window for timer messages    
UINT nIDEvent, // timer identifier    
UINT uElapse, // time-out value    
TIMERPROC lpTimerFunc // address of timer procedure    
);  
UINT SetTimer(
HWND hWnd, // handle of window for timer messages
UINT nIDEvent, // timer identifier
UINT uElapse, // time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);
 
其中hWnd 是指向CWnd的指针,即处理Timer事件的窗口类。说道窗口类(CWnd),我们有必要来看一下CWnd的继承情况:CWnd有以下子类:CFrameWnd,CDialog,ontrolBar等类。这也意味这些类中都可以定义SetTimer事件。
同时,SetTimer()在CWnd中也有定义,即SetTimer()是CWnd的一个成员函数。CWnd的子类可以调用该函数,来设置触发器。
Cpp代码
UINT SetTimer( UINT nIDEvent,    
           UINT nElapse,    
           void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) );  
UINT SetTimer( UINT nIDEvent,
UINT nElapse,
v