取消息函数
BOOL GetMessage(
LPMSG lpMsg, //指向消息结构体
HWND hWnd, //指定接收消息窗口
UINT wMsgFilterMin, //获取消息最小值
UINT wMsgFilterMax //获取消息最大值
);
简单的消息循环
MSG msg;
While(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Windows应用程序的消息处理过程:
1.操作系统接收到应用程序的窗口消息,将消息投递到该应用程序的消息队列中
2.应用程序在消息循环中调用GerMessage函数从消息队列中取出一条一条的消息。取出消息后,应用程序可以对消息进行一些预处理。
3.应用程序调用DispatchMessage,将消息回传给操作系统。
4.系统利用WNDCLASS结构体的lpfnWndProc成员保存的窗口过程函数的指针调用窗口过程,对消息进行处理。
窗口过程函数
LRESULT CALLBACK WindowProc(
HWND hwnd, //窗口句柄
UINT uMsg, //消息表示
WPARAM wParam, //第一个消息的附加参数
LPARAM lParam //第二个消息的附加参数
);