其定义如下(在WINUSER.H中):
/*
* Message structure
*/
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
#ifdef _MAC //这里暂时不考虑,因为不知道
DWORD lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
其中的POINT的定义如下
typedef struct tagPOINT
{
LONG x;
LONG y;
} POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;
参数一: HWND hwnd 是消息发向的窗口的句柄,这一参数与CreateWindow返回的hwnd值相同
参数二:UINT message 是消息标识符。这是一个数值,用以标识消息。对于每个消息,均有一个对应的标识符,这些标识符定义于Windows头文件中(其中大多数在WINUSER.H中),以前缀WM(window message ,窗口消息)开头。(例如,在客户区域内按下鼠标左键,message域等于WM_LBUTTONDOWN。这是一个常量,其值为0x0201)
参数三:WPARAM wParam 是一个32位的“message parameter(消息参数)”,其含义和数值根据消息的不同而不同
参数四: LPARAM lParam 是一个32位的消息参数,其值与消息有关
参数五:DWORD time 消息放入消息队列中的时间
参数六:POINT pt 消息放入消息队列时的鼠标坐标。
注:只要从消息队列中取出消息的message域不为VM_QUIT(其值为0x0012),GetMessage就返回一个非0值。VM_QUIT消息将导致GetMessage返回0 。