我正在使用MFC MDI。我在主文档窗口中创建了一个窗口。我创建另一个窗口(让我们称之为第二个窗口)作为MDI窗口视图的子窗口,然后我创建第二个窗口的子窗口(第三个窗口)。我再次需要创建另一个窗口,第三个窗口的子窗口。我在功能区上有一个按钮,我想在第三个窗口中调用消息处理程序来处理此命令。我添加了消息映射和所有必需的东西,但它没有调用消息处理程序。如果我在MDI窗口视图中定义消息处理程序,它将捕获该事件。如果我没有在我的主CWinApp类或MDI窗口View类中声明消息处理程序,则按钮显示为禁用。
我的所有子视图类都是从CWnd继承的,主MDI窗口是从CView派生的。请告诉我这里缺少的东西。
萨巴
答案 0 :(得分:0)
我在这里不知所措。您正在使用MFC;为何使用活动?使用命令消息和命令消息处理程序代替事件。 使用MFC实现并且运行良好的命令路由。
答案 1 :(得分:0)
MFC不会将通过单击功能区按钮生成的消息路由到子窗口。如果我们想要向MDI窗口的子窗口发送消息,我们需要自己完成。功能区按钮的消息将传递到活动MDI窗口或CWinApp类。