0

我有一个使用 MFC 的可视 C++ 代码,它创建了一个多模态对话框。该项目不是我开发的,我的任务是隐藏对话窗口。

我已经设法做到了,它工作了一段时间,但现在当dlg.Create它被调用时返回我:

CoCreateInstance of OLE control {00000000-0000-0000-0000-000000000000} failed
Result code: 0x80040154
Is the control is properly registered?

上面的消息不是构建错误,是dlg.Create失败后弹出的消息,所以我的应用程序不会调用::OnInitDialog()函数。

我对 MFC 和 ActiveX 控制器的经验很少,所以我解决问题的所有尝试都失败了。我检查了注册表项、dll 签名,似乎一切正常。

所以你能帮助我或提示我应该如何解决这个问题并解决它。

下面我将发布问题出现的代码。

CCRViewerDlg  dlg;
m_pMainWnd = &dlg;  

int nResponse = dlg.DoModal();

if( dlg.Create( CCRViewerDlg::IDD))
{
    dlg.ShowWindow( SW_HIDE );
    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.RunModalLoop();
}
DWORD lastError = GetLastError();   

谢谢。

4

1 回答 1

0

您的对话框实例已经创建并随DoModal调用一起显示。然后你试图再次创建它——这将导致各种资源问题。

您需要使用 DoModal 显示它,然后在对话框代码中隐藏它,或者根本不使用 DoModal。

查看类似问题: 隐藏 MFC 对话框窗口隐藏 MFC 对话框

于 2013-09-03T14:18:17.537 回答