MFC按钮触发事件中如何关闭其它类的对话框,是需要获取其他类的指针吗?代码要怎么写?

我想在点击OnButton1时关闭本对话框和其他的CDlg1,CDlg2,CDlg3关联的对话框,我是这样写的CDlg1::EndDialog(0);CDlg2::EndDialog(0);CDlg3::EndDialog(0);然后弹出错误is not a class or namespace name,应该如何解决?

最简单的,定义成全局变量,用enddialog或者sendmessage(那个窗口的handle, wm_close,0,0)

想在点击OnButton1时关闭本对话框和其他的CDlg1,CDlg2,CDlg3关联的对话框,我是这样写的CDlg1::EndDialog(0);CDlg2::EndDialog(0);CDlg3::EndDialog(0);然后弹出错误is not a class or namespace name

加上namesapce name,然后调用各个类。或者你可以通过消息机制来触发关闭。让vs运行多个对话框,然后在每个对话框类中增加一个消息机制,当本对话框操作某个按键关闭本对话框的同时触发其他对话框触发。

需要获取要关闭的对话框指针,然后再用此指针去调用EndDialog。

1、在OnButton1对应的类中获取\添加CDlg1,CDlg2,CDlg3的实例,然后关闭实例。
2、在OnButton1对应的类和CDlg1,CDlg2,CDlg3对应的类中添加消息处理函数,OnButton1分别发送关闭消息到三个窗口类中。

可以给其它窗口发送WM_CLOSE消息,前提是你需要得到他们的HWND窗口句柄或者CWnd*指针。