MFC中有关WM_CREATE消息

我只知道在创建完一个窗口后,显示窗口前要调用OnCreate函数,由于Windows应用程序是一种消息处理
机制,当创建完一个窗口后,Windows应用程序就处于等待消息的状态,如果我在OnCreate函数中定义一个计时器,
SetTimer(1,1,NULL),也就是每一豪秒发送一个OnTimer函数,可这种情况只有在OnCreate函数一直被调用,并
且调用的很频繁,每一毫秒就发送WM_CREATE(这里的一毫秒是SetTimer中的一毫秒,一秒也是一样),然后调用
SetTimer。这就是我不理解WM_CREATE消息的地方,难道是一个应用程序在创建后就一直以很快的速度发送
WM_CREATE消息?请帮我解说下怎么才发送WM_CREATE消息,谢谢!
 
   
   
   
   
你理解错啦,WM_CREATE 顾名思意就是创建窗口,你一毫秒创建一个窗口怎么了得。 
Timer被设置后会一直存在,直到用 KillTimer 删除。 
Timer被创建后,每隔一定时间会发送 WM_TIMER 消息,只要加个WM_TIMER 消息处理函数就可以了,当收到WM_TIMER 消息后,程序就会调用函数。 
当然,你也可以在创建Timer时指定回调函数。 
SetTimer 原形如下,注意 CWnd 类的 SetTimer 方法没有第一个参数: 
UINT_PTR SetTimer( 
HWND hWnd, // handle to window 
UINT_PTR nIDEvent, // timer identifier 
UINT uElapse, // time-out value 
TIMERPROC lpTimerFunc // timer procedure 
); 
四个参数分别是: 
hWnd 所属的窗口句柄,如果 lpTimerFunc 为空,这个窗口将接收 WM_TIMER 消息。 
nIDEvent Timer的ID值,发送 WM_TIMER消息时会附带发送这个值。 
uElapse 超时时间。 
lpTimerFunc 回函数,如果为空,将发送 WM_TIMER 消息给 hWnd 指定的窗口的消息队列。lpTimerFunc 的函数原型如下: 
VOID CALLBACK TimerProc( 
HWND hwnd, // handle to window 
UINT uMsg, // WM_TIMER message 
UINT_PTR idEvent, // timer identifier 
DWORD dwTime // current system time 
);
 

你可能感兴趣的:(MFC中有关WM_CREATE消息)