我正在使用MFC MDI。我创建一个窗口主文档窗口。我创建另一个窗口(让它称为第二个窗口)作为MDI窗口视图的子项,然后创建第二个窗口的子窗口(第三个窗口)。我再次需要创建另一个窗口,第三个窗口的子窗口。我在功能区上有一个按钮,我想在第三个窗口中调用消息处理程序来处理此命令。我添加了消息映射和所有必需的东西,但它不调用消息处理程序。如果我在MDI窗口视图中定义消息处理程序,它会捕获该事件。如果我不拖延我的主要CWinApp类或MDI窗口视图类中的消息处理程序,按钮将显示为禁用。向用户定义的窗口类添加事件处理程序
我所有的子视图类都是从CWnd继承的,主MDI窗口是从CView派生的。请让我知道我在这里失踪。
萨巴
父子关系和焦点都工作正常,但事件不会路由到子窗口 – Saba
我猜你可能需要自己转发消息。我经历过类似的事情,IIRC将框架转发给它的窗口,但是你打开的任何其他窗口(这些额外的孩子)可能不会得到任何东西,除非你自己转发消息。 – Nerdtron
谢谢Nerdtron,我认为你是对的,我也尝试了更多的东西,但没有任何工作。基本上,功能区将其发送到主框架,主框架将其发送到“查看”或“应用”。我没有发现任何有关窗口焦点在那里在mfc代码搜索。 – Saba