2012-09-25 22 views
0

我正在使用MFC MDI。我创建一个窗口主文档窗口。我创建另一个窗口(让它称为第二个窗口)作为MDI窗口视图的子项,然后创建第二个窗口的子窗口(第三个窗口)。我再次需要创建另一个窗口,第三个窗口的子窗口。我在功能区上有一个按钮,我想在第三个窗口中调用消息处理程序来处理此命令。我添加了消息映射和所有必需的东西,但它不调用消息处理程序。如果我在MDI窗口视图中定义消息处理程序,它会捕获该事件。如果我不拖延我的主要CWinApp类或MDI窗口视图类中的消息处理程序,按钮将显示为禁用。向用户定义的窗口类添加事件处理程序

我所有的子视图类都是从CWnd继承的,主MDI窗口是从CView派生的。请让我知道我在这里失踪。

萨巴

+0

父子关系和焦点都工作正常,但事件不会路由到子窗口 – Saba

+1

我猜你可能需要自己转发消息。我经历过类似的事情,IIRC将框架转发给它的窗口,但是你打开的任何其他窗口(这些额外的孩子)可能不会得到任何东西,除非你自己转发消息。 – Nerdtron

+0

谢谢Nerdtron,我认为你是对的,我也尝试了更多的东西,但没有任何工作。基本上,功能区将其发送到主框架,主框架将其发送到“查看”或“应用”。我没有发现任何有关窗口焦点在那里在mfc代码搜索。 – Saba

回答

0

我在这里的损失。您正在使用MFC;为什么使用事件?使用命令消息和命令消息处理程序来代替事件。 使用MFC实现和良好的工作命令路由。

+0

对不起,我基本上在多个平台上工作,而且每个关键词都有所不同。我正在使用消息和消息处理程序 – Saba

0

MFC不会将通过单击功能区按钮生成的消息路由到子窗口。如果我们想发送消息到MDI窗口的子窗口,我们需要自己做。功能区按钮的消息被传递到活动的MDI窗口或CWinApp类。

相关问题