MFC消息结构和消息处理

本文介绍了MFC中的消息结构,包括MSG结构及其成员,以及消息如何通过窗口过程和消息循环进行处理。MFC通过消息映射简化了消息处理,允许开发者使用ClassWizard生成和处理消息映射,从而实现特定的消息处理功能。
摘要由CSDN通过智能技术生成

1.消息的结构

       为了从消息队列获取消息信息,需要使用MSG结构。例如,::GetMessage函数(从消息队列得到消息并从队列中移走)和::PeekMessage函数(从消息队列得到消息但是可以不移走)都使用了该结构来保存获得的消息信息。

      MSG结构的定义如下:

typedef struct tagMSG { // msg 

HWND hwnd; 

UINT message; 

WPARAM wParam; 

LPARAM lParam; 

DWORD time; 

POINT pt; 

} MSG; 


 

该结构包括了六个成员,用来描述消息的有关属性:

接收消息的窗口句柄、消息标识(ID)、第一个消息参数、第二个消息参数、消息产生的时间、消息产生时鼠标的位置。

2.应用程序通过窗口过程来处理消息

        每个“窗口类”都要登记一个如下形式的窗口过程

LRESULT CALLBACK MainWndProc (

HWND hwnd,// 窗口句柄

UINT msg,// 消息标识

WPARAM wParam,//消息参数1

LPARAM lParam//消息参数2

)


应用程序通过窗口过程来处理消息:非队列消息由Windows直接送给目的窗口的窗口过程,队列消息由::DispatchMessage等派发给目的窗口的窗口过程。窗口过程被调用时,接受四个参数:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值