Windows消息处理机制
消息队列中的本窗口大量消息并不会被自动取出,也没有自动地调用WinProc函数对消息加以处理,但是,Window系统提供了三个API函数给我们,让我们自己去完成这件事。看吧!
GetMessage( …);
TranslateMessage(…);
DispatchMessage(…);
下面就让我分别对这三个函数解释解释。
1 GetMessage( …)
原型如下:
BOOL GetMessage(
LPMSG lpMsg,
HWND hWnd ,
UINT wMsgFilterMin,
UINT wMsgFilterMax);
功能: 这个API函数用来从消息队列中“摘取”一个消息信息放到lpMsg所指的变量里。(注:如果所取窗口的消息队列中没有消息,则程序会暂停在GetMessage(…) 函数里,不会返回。)
参数及返回值:
LPMSG lpMsg: 是传出参数。消息结构MSG的指针。如果该函数执行成功,则从消息队列中“摘”取的一个消息信息会放入lpMsg所指的MSG结构变量中。
在Winuser.h中有定义如下:
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam