欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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