1、消息与队列(在windows中,用户程序可以调用系统的API函数,系统也可以调用用户程序,这是调用时通过消息来进行的。)
(1)消息
MSG结构体定义:
typedef struct tagMSG
{
HWND hwnd; //消息所属窗口
UINT message; //消息标识符(WM_XXX宏)
WPARAM wParam; //消息附加说明
LPARAM lParam; //消息附加说明
DWORD time; //消息投递到应用程序队列的时间
POINT pt; //鼠标当前位置
}MSG;
(2)消息队列
Windows运行机制:例如按下鼠标左键,产生WM_LBUTTONDOWN消息,系统会将此消息放到窗口所属的应用程序消息队列中,等待应用程序处理(windows会依次将产出的消息放入消息队列)。应用程序通过消息循环不断从队列中取出消息并进行响应。
(3)Windows中包含进队和不进队消息。
2、Winmian函数
Windows 应用程序消息处理过程:
(1)操作系统接收应用程序的窗口消息,将消息投放到应用程序的消息队列中。
(2)应用程序在消息循环中调用GetMessage函数从队列中取出消息,然后进行一些处理。例如TranslateMessage产生新的消息。
(3)应用程序调用DispatchMessage将消息回传给操作系统。
系统利用WNDCLASS结构体中lpfnWndProc成员保存的窗口过程函数指针调用窗口过程函数,对消息进行处理。
本文转自 韬光星夜 51CTO博客,原文链接:http://blog.51cto.com/xfqxj/476984,如需转载请自行联系原作者