【问题标题】:Adding CDialog inside CDockablePane and application becomes unresponsive在 CDockablePane 中添加 CDialog 并且应用程序变得无响应
【发布时间】:2018-11-14 02:29:13
【问题描述】:

我想在CDockablePane 中添加一个CDialog 控件。当我使用CDialog.DoModal() 显示对话框窗口时,它使MFC 应用程序无响应并等待CDialog 结果。

如何让应用程序显示对话框并继续运行而不等待CDialog 结果?

【问题讨论】:

    标签: mfc


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答,现在我按照您的建议使用从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
    • 创建后添加:m_DlgInsidePane.ShowWindow(SW_SHOW);
    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多