MSG是Windows程序中的结构体,用于保存windows消息,
定义:windows
typedef struct tagMSG { HWND hwnd; //该消息所属的窗口句柄 UINT message; //指定消息的类型 WPARAM wParam; //用于指定消息的附加信息,根据消息不一样,表明不一样意思 LPARAM lParam; //用于指定消息的附加信息,根据消息不一样,表明不一样意思 DWORD time; //该消息投递到消息列队当中的时间 POINT pt; //该消息投递到消息列队当时,鼠标的当前位置 } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
第一个参数:hwnd
hwnd是一个窗口句柄,用于区别该消息属于哪个窗口,能够说是一个窗口的编号。
一个消息通常都与某个窗口相关联,好比鼠标移动到某个窗口中按下鼠标左键,
该窗口就会收到一个“WM_LBUTTONDOWND”的消息,而应用程序就是利用消息中的hwnd值来
肯定该消息究竟是属于众多窗口中的哪个窗口的。spa
第二个参数:message
为消息类型,该值为一个数值,不一样的数值表示不一样的消息,为了便于记忆,windows
为不一样的消息定义了不一样的宏,WM_XXX。(WM是windows message的缩写),例如
WM_LBUTTONDOWN 消息 按下鼠标左键的消息是
WM_KEYDOWN 消息 表示按下键盘上的某个键等等。code
第三个参数:wParam
WPARAM类型 根据不一样的消息 表明不一样的意思:例如
当收到 WM_LBUTTONDOWN 消息时,wParam 鼠标按钮、Shift和Ctrl键的状态。blog
第四个参数:lParam
LPARAM类型 WPARAM类型 根据不一样的消息 表明不一样的意思:例如
当收到 WM_SIZE 消息时候 lParam - 客户区的大小。
LOWORD(底位) - 客户区的宽度。
HIWORD(高位) - 客户区的高度。class
第五个参数:time -表示收到该消息的时间程序
第六个参数:pt -表示收到该消息时鼠标的当前位置;im