MFC(视图窗口、WM_COMAND命令消息)

本文介绍了MFC中视图窗口和COMMAND消息的处理机制。当不同窗口产生消息时,MFC会按特定顺序查找处理函数。COMMAND消息的处理顺序为:视图类>文档类>框架类>APP类。同时,强调了视图窗口必须被激活,才能处理COMMAND消息,因为处理流程依赖于框架类中保存的当前活动视图对象指针。
摘要由CSDN通过智能技术生成

视图窗口

命令消息

正常情况下,不同窗口产生不同的消息时,MFC会自动找到对应的类对象,遍历该对象的消息数组,找不到对应的消息,会再去其父类找对应的消息,也就是说,只要是该窗口产生的消息就会到这个类及其父类找处理函数,但是相对来说,COMMAND消息就不同,因为不管是视图类APP类还是框架类都可以处理COMMAND消息,而且获取COMMAND消息的先后顺序是:视图类>文档类>框架类>APP类

执行COMMAND消息过程如下:

//WM_COMMAND消息的路线
AfxWndProc(...)//线进入窗口处理程序
{
   
  CWnd* pWnd = CWnd::FromHandlePermanent(hWnd);
             //获取和hWnd绑定在一起的框架类对象地址(pFrame===pWnd)
  AfxCallWndProc(pWnd...)//参数pWnd===pFrame
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值