2016-05-29 51 views
0

我想在CDockablePane中添加CDialog,当我使用CDialog.DoModal()时,它使MFC应用程序无响应并等待CDialog结果。 如何让应用程序继续运行而不等待CDialog结果? 在此先感谢。在CDockablePane中添加CDialog

回答

1

您不能使用DoModal来显示对话框。这会显示一个模式对话框,该对话框将阻止与应用程序中任何其他窗口的交互,直到该对话框被解除为止。就像一个消息框一样。

要显示非模态对话框,请调用Create成员函数。使用CDockablePane的实例作为对话框的父对象。您还需要确保对话框本身是一个没有边框的子窗口。

使用派生自CFormViewCPaneDialog的类可能更容易。

+0

谢谢您的回答,我现在正在使用来自'CPaneDialog'衍生正如你提到的一类,像这样: 'm_DlgInsidePane.Create(_T( “指南”),对此,FALSE, IDD_DLG_TEST_IN_PANE, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI, 0)',但对话框不出现。 @Cody Gray –

+0

创建后添加:m_DlgInsidePane.ShowWindow(SW_SHOW); – Ramunas