MSG结构
程序员文章站
2023-03-26 20:33:58
MSG是Windows程序中的结构体,用于保存windows消息,定义: typedef struct tagMSG { HWND hwnd; //该消息所属的窗口句柄 UINT message; //指定消息的类型 WPARAM wParam; //用于指定消息的附加信息,根据消息不同,代表不同意 ......
msg是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值来
确定该消息到底是属于众多窗口中的哪一个窗口的。
第二个参数:message
为消息类型,该值为一个数值,不同的数值表示不同的消息,为了便于记忆,windows
为不同的消息定义了不同的宏,wm_xxx。(wm是windows message的缩写),例如
wm_lbuttondown 消息 按下鼠标左键的消息是
wm_keydown 消息 表示按下键盘上的某个键等等。
第三个参数:wparam
wparam类型 根据不同的消息 代表不同的意思:例如
当收到 wm_lbuttondown 消息时,wparam 鼠标按钮、shift和ctrl键的状态。
第四个参数:lparam
lparam类型 wparam类型 根据不同的消息 代表不同的意思:例如
当收到 wm_size 消息时候 lparam - 客户区的大小。
loword(底位) - 客户区的宽度。
hiword(高位) - 客户区的高度。
第五个参数:time -表示收到该消息的时间
第六个参数:pt -表示收到该消息时鼠标的当前位置;