从 mfc 扩展 dll 导出的无模式对话框不显示

Posted

技术标签:

【中文标题】从 mfc 扩展 dll 导出的无模式对话框不显示【英文标题】:modaless dialog export from mfc extension dll not show 【发布时间】:2018-09-22 00:58:28 【问题描述】:

我已经构建了以下配置:

1) 带有对话框 A(类 MultipleTextBox)的 MFC 扩展 dll

2) MFC 应用程序有对话框 B。(对话框 A 作为对话框 B 的子级)

对话框 B 在头文件中声明对话框 A 的实例:

private:
    MultipleTextBox* m_pTextBox;

在对话框 B 的 OnInitDialog 函数中:

m_pTextBox->CreateDlg(MultipleTextBox::IDD, this);
m_pTextBox->ShowWindow(SW_SHOW);
m_pTextBox->MoveWindow(0, 0, 200, 200);

但对话框 A 在应用程序运行时不显示。

【问题讨论】:

【参考方案1】:

这很可能是由于缺少调用

AFX_MANAGE_STATE(AfxGetStaticModuleState());

调用上述函数,然后对话框将显示在您的应用程序中。

【讨论】:

以上是关于从 mfc 扩展 dll 导出的无模式对话框不显示的主要内容,如果未能解决你的问题,请参考以下文章

MFC DLL导出对话框问题

在 MFC 中不断增加进度条

将焦点放在托管在 MFC 视图中的无模式对话框上

从 MFC DLL 显示对话框

创建共享 MFC 对话框:常规 DLL 或 MFC 扩展 DLL

为啥从属性页调用afxmessagebox到扩展dll时mfc死锁