MSG结构

2022-10-12,

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  -表示收到该消息时鼠标的当前位置;

《MSG结构.doc》

下载本文的Word格式文档,以方便收藏与打印。