MFC的消息反射

这边我用对话框来测试mfc的消息反射

当对话框初始化完成之后,点击按钮,首先相应CDialog::OnCommand其中wpARAM(低八位nId,高八位子控件句柄) 和LPARAM(句柄)

OnCommand里面先调用了ReflectLastMsg(hWndCtrl);//如果子控件用了消息反射,而该函数主要调用了SendChildNotifyLastMsg ->子控件的OnChildNotify

->ReflectChildNotify->OnCmdMsg(CmdTarget);//这里已经详细到处理messgemap了因为有messagemap所以会通知父窗口

现象如下:

点击Button,然后如果button处理了消息反射(就是自定义button,是否有ON_CONTROL_REFLECT(BN_CLICKED, &CMBtn::OnBnClickedButton1))

然后结果是只向应反射处理函数,为响应对话框的点击函数,如果要处理对话框的点击函数则,在此消息下,OnChildNotyfy返回为0

原文地址:https://www.cnblogs.com/yang131/p/13200624.html