无模式对话框中的 MFC C++ 显示模态对话框
Posted
技术标签:
【中文标题】无模式对话框中的 MFC C++ 显示模态对话框【英文标题】:MFC C++ in a Modeless Dialog Show a Modal one 【发布时间】:2013-07-26 17:55:40 【问题描述】:我有一个无模式对话框。当我尝试从那里执行 .DoModal() 时,它会显示对话框,但它仍然允许您与无模式对话框进行交互。
这就是我创建无模式对话框的方式: MyMainEditorWindow = new CMyMain(this); MyMainEditorWindow->Create(CMyMain::IDD,GetDesktopWindow()); MyMainEditorWindow->ShowWindow(SW_SHOW);
要做一个模态的,从那个非模态窗口,我做
CMyDlg 我的Dlg; int 对话框 = myDlg.DoModal();
有什么方法可以做我想做的事吗?在无模式窗口中,来自它的对话框使其窗口等待直到它被决定。
【问题讨论】:
编辑不会改变答案。 modal 对话框需要有 modeless 对话框作为它的父级。 【参考方案1】:您需要在模态对话框的构造函数中设置父窗口。 CDialog 构造函数的文档说,如果将其设置为NULL
,它将使用主应用程序窗口作为父窗口,如果未指定,则默认为NULL
。
【讨论】:
+1 我总是尝试设置父级(几乎总是this
),而不是使用默认的NULL以上是关于无模式对话框中的 MFC C++ 显示模态对话框的主要内容,如果未能解决你的问题,请参考以下文章