【发布时间】:2018-11-14 02:29:13
【问题描述】:
我想在CDockablePane 中添加一个CDialog 控件。当我使用CDialog.DoModal() 显示对话框窗口时,它使MFC 应用程序无响应并等待CDialog 结果。
如何让应用程序显示对话框并继续运行而不等待CDialog 结果?
【问题讨论】:
标签: mfc
我想在CDockablePane 中添加一个CDialog 控件。当我使用CDialog.DoModal() 显示对话框窗口时,它使MFC 应用程序无响应并等待CDialog 结果。
如何让应用程序显示对话框并继续运行而不等待CDialog 结果?
【问题讨论】:
标签: mfc
您不能使用DoModal 来显示对话框。这将显示一个模态对话框,它会阻止与应用程序中的任何其他窗口进行交互,直到对话框被关闭。就像消息框一样。
要显示非模态对话框,请调用Create 成员函数。使用 CDockablePane 的实例作为对话框的父级。您还需要确保对话框本身是一个没有边框的子窗口。
使用派生自CFormView 或CPaneDialog 的类可能更容易。
【讨论】:
CPaneDialog 派生的类,如下所示:m_DlgInsidePane.Create(_T("Guide"), this, FALSE, IDD_DLG_TEST_IN_PANE, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI, 0),但没有出现对话框。 @Cody Gray