视图窗口
命令消息
正常情况下,不同窗口产生不同的消息时,MFC会自动找到对应的类对象,遍历该对象的消息数组,找不到对应的消息,会再去其父类找对应的消息,也就是说,只要是该窗口产生的消息就会到这个类及其父类找处理函数,但是相对来说,COMMAND消息就不同,因为不管是视图类APP类还是框架类都可以处理COMMAND消息,而且获取COMMAND消息的先后顺序是:视图类>文档类>框架类>APP类。
执行COMMAND消息过程如下:
//WM_COMMAND消息的路线
AfxWndProc(...)//线进入窗口处理程序
{
CWnd* pWnd = CWnd::FromHandlePermanent(hWnd);
//获取和hWnd绑定在一起的框架类对象地址(pFrame===pWnd)
AfxCallWndProc(pWnd...)//参数pWnd===pFrame
{
pWnd

本文介绍了MFC中视图窗口和COMMAND消息的处理机制。当不同窗口产生消息时,MFC会按特定顺序查找处理函数。COMMAND消息的处理顺序为:视图类>文档类>框架类>APP类。同时,强调了视图窗口必须被激活,才能处理COMMAND消息,因为处理流程依赖于框架类中保存的当前活动视图对象指针。
最低0.47元/天 解锁文章
1396

被折叠的 条评论
为什么被折叠?



