在 MFC 中从文档类创建无模式对话框

Posted

技术标签:

【中文标题】在 MFC 中从文档类创建无模式对话框【英文标题】:Creating Modeless Dialog-box from Document Class in MFC 【发布时间】:2013-02-22 17:32:34 【问题描述】:

从我的文档类创建模式对话框没有问题。只需将以下内容添加到 Document 类:

CDialog dlg;

dlg.DoModal();

但是当我想为无模式对话框做同样的事情时它不起作用:

CDialog * pDialog;  
pDialog = new CDialog();
pDialog->Create(IDD_DIALOG, this);

我得到的错误是: error C2664: 'BOOL CDialog::Create(LPCTSTR,CWnd *)' : cannot convert parameter 1 from 'int' to 'LPCTSTR'

任何帮助表示赞赏。

【问题讨论】:

问题是 'this' 参数应该是 CWnd* 而你是 CDocument* - 尝试通过将 NULL 而不是 'this' 作为第二个参数或父级来将其作为父级到桌面通过 AfxGetMainWnd() 传递大型机。 你有答案吗?同样的问题! 【参考方案1】:

我认为你需要的是

pDialog->Create(MAKEINTRESOURCE(IDD_DIALOG), this);

【讨论】:

根据documentation for CDialog::Create应该直接取整型参数。

以上是关于在 MFC 中从文档类创建无模式对话框的主要内容,如果未能解决你的问题,请参考以下文章

在 SDI mfc 应用程序中从视图访问模式对话框

如何“正确关闭 MFC 无模式对话框并修复资源泄漏”

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

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

无模式对话框中的 MFC C++ 显示模态对话框

如何使用 MFC 从控制台正确弹出无模式对话框