为了账号安全,请及时绑定邮箱和手机立即绑定

关于mfc中winmain函数调用initinstance()的代码问题?

关于mfc中winmain函数调用initinstance()的代码问题?

婷婷同学_ 2019-02-12 14:10:48
initinstance()函数部分代码如下:CCommandLineInfo cmdInfo;//定义命令行ParseCommandLine(cmdInfo);//解析命令行// 调度在命令行中指定的命令。如果// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。if (!ProcessShellCommand(cmdInfo)) //程序启动时创建新文档return FALSE;// 唯一的一个窗口已初始化,因此显示它并对其进行更新m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();这里我不理解的就是,到m_pMainWnd->ShowWindow(SW_SHOW)这一句唯一的一个窗口已经初始化,按说窗口初始化应该调用createwindow函数啊,这样的调用我怎么没看见呢再问一个问题,createwindow函数既然要创建一个窗口,一个窗口是由视图类对象、文档类对象、框架类对象有机的结合在一起形成的,createwindow()函数是如何把它们联系在一起的啊,在createwindow()函数的那些参数当中没有体现出任何这样的信息啊谢谢指导,我是C++mfc的初学者
查看完整描述

2 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_TESTMFTYPE,
RUNTIME_CLASS(CTestmfcDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CTestmfcView));
AddDocTemplate(pDocTemplate);

// create main MDI Frame window
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;

在你所写代码上面,有这些代码,这是创建主窗口和MFC模式模板的代码,取代了createwindow但作用相同(内部代码是一致的),这种模式在非MFC框架下不能使用。

查看完整回答
反对 回复 2019-03-25
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

CCommandLineInfo cmdInfo;//定义命令行
ParseCommandLine(cmdInfo);//解析命令行
的上面还有代码

CSingleDocTemplate对象负责管理视图类对象、文档类对象、框架类对象。这三个对象是在CSingleDocTemplate里创建和管理的。createwindow函数也有,被深度包装到MFC源码里了,你可以点调试,单步跟踪来看,要跟进去才能看到。调试-逐语句执行。初学者先学会使用MFC再剖析MFC源码,可以看下《深入浅出MFC》


查看完整回答
反对 回复 2019-03-25
  • 2 回答
  • 0 关注
  • 765 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信