无模式对话框中的MFC C++显示模态对话框
问题描述:
我有一个无模式对话框。当我尝试从那里做一个.DoModal()时,它会显示对话框,但它仍然允许您与无模式对话框进行交互。无模式对话框中的MFC C++显示模态对话框
这是我如何创建无模式对话框: MyMainEditorWindow = new CMyMain(this); MyMainEditorWindow-> Create(CMyMain :: IDD,GetDesktopWindow()); MyMainEditorWindow-> ShowWindow(SW_SHOW);
做一个模式之一,从该模式窗口,我做
的CMyDlg myDlg; int dialogbox = myDlg.DoModal();
有没有办法做我想要的?无模式窗口中的对话框会使窗口等待,直到它被确定。
答
您需要在模式对话框的构造函数中设置父窗口。对于CDialog构造函数的文档说,如果将它设置为NULL
,它将使用主应用程序窗口作为父项,如果未指定,则默认为NULL
。
+1
+1我总是尝试设置父(它几乎总是'this'),而不是使用默认的NULL – franji1
编辑不会改变答案。 * modal *对话框需要有* modeless *对话框,因为它是父级对话框。 – Joel