在 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 中从文档类创建无模式对话框的主要内容,如果未能解决你的问题,请参考以下文章