mdi中loadframe失败怎么办?

cetcscada 2004-11-18 03:42:16
代码如下:
BOOL CHYDRAWApp::InitInstance()
{
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}

// Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}

AfxEnableControlContainer();

// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.

#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif

// Change the registry key under which our settings are stored.
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization.
SetRegistryKey(_T("Local AppWizard-Generated Applications"));

LoadStdProfileSettings(); // Load standard INI file options (including MRU)

// Register the application's document templates. Document templates
// serve as the connection between documents, frame windows and views.

CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_HYDRAWTYPE,
RUNTIME_CLASS(CHYDRAWDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CHYDRAWView));
pDocTemplate->SetContainerInfo(IDR_HYDRAWTYPE_CNTR_IP);
pDocTemplate->SetServerInfo(
IDR_HYDRAWTYPE_SRVR_EMB, IDR_HYDRAWTYPE_SRVR_IP,
RUNTIME_CLASS(CInPlaceFrame));
AddDocTemplate(pDocTemplate);

// Connect the COleTemplateServer to the document template.
// The COleTemplateServer creates new documents on behalf
// of requesting OLE containers by using information
// specified in the document template.
m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);

// Register all OLE server factories as running. This enables the
// OLE libraries to create objects from other applications.
COleTemplateServer::RegisterAll();
// Note: MDI applications register all server objects without regard
// to the /Embedding or /Automation on the command line.

// create main MDI Frame window

CMainFrame* pMainFrame = new CMainFrame;
//LoadFrame此处失败,程序退出

if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;

// Enable drag/drop open
m_pMainWnd->DragAcceptFiles();

// Enable DDE Execute open
EnableShellOpen();
RegisterShellFileTypes(TRUE);

// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);

// Check to see if launched as OLE server
if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated)
{
// Application was run with /Embedding or /Automation. Don't show the
// main window in this case.
return TRUE;
}

// When a server application is launched stand-alone, it is a good idea
// to update the system registry in case it has been damaged.
m_server.UpdateRegistry(OAT_DOC_OBJECT_SERVER);
COleObjectFactory::UpdateRegistryAll();

// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE;

// The main window has been initialized, so show and update it.
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
pDocTemplate->CloseAllDocuments(FALSE);
m_SysPowerOnKey=false;
return TRUE;
}

怎样解决?谢谢
...全文
261 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
老夏Max 2004-11-18
  • 打赏
  • 举报
回复
注意new CMainFrame;这句是触发程序的全部,它创建了主框架,并且如果新建了文档,它还创建了视图和文档,呵呵。其调用了OnCreate函数一定不能有错误,否则就会出错!
cetcscada 2004-11-18
  • 打赏
  • 举报
回复
试过了还是不行
rclling 2004-11-18
  • 打赏
  • 举报
回复
呵呵,不是太懂,如果你把 “AddDocTemplate(pDocTemplate);”
这一句放在
“pDocTemplate->SetContainerInfo(IDR_HYDRAWTYPE_CNTR_IP);
pDocTemplate->SetServerInfo(
IDR_HYDRAWTYPE_SRVR_EMB, IDR_HYDRAWTYPE_SRVR_IP,
RUNTIME_CLASS(CInPlaceFrame));”
之前试试呢?
老夏Max 2004-11-18
  • 打赏
  • 举报
回复
如果可以的话,发到:xia_qingqi@broadxent.com.cn
我帮你看看!注明帖子的URL!

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧