MFC程序创建源码.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC程序创建源码

创建窗口过程: 1. AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow); //MFC消息入口函数 2. AfxWinMain() 3. if (!pThread-InitInstance()) 线程初始化 进去 4. pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, //单文档模板 ,1.菜单名称,2.文档,3框架,4视图 RUNTIME_CLASS(CDemoDoc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(CDemoView)); 5. CDocTemplate::CDocTemplate 进去 然后按F11进基类的构造函数 6. LoadTemplate(); 装载文档模板 7. void CDocTemplate::LoadTemplate() 跳出 逃到了第4步的继续 8. 现在在BOOL CDemoApp::InitInstance()里面 是第4步的继续 -- if (!ProcessShellCommand(cmdInfo)) 调度命令,相当于点击word打开 默认filenew新建 不让nothing ====F1进去 注册在这里!! 9. 在CWinApp::ProcessShellCommand(CCommandLineInfo rCmdInfo)里面 找到 if (!AfxGetApp()-OnCmdMsg(ID_FILE_NEW, 0, NULL, NULL)) 这句话是发送一条消息,这条消息最终调用了OnFileNew(); 10. void CWinApp::OnFileNew() -- m_pDocManager-OnFileNew();进去 11. void CDocManager::OnFileNew() 12. pTemplate-OpenDocumentFile(NULL); 进去 13. CDocument* CSingleDocTemplate::OpenDocumentFile(LPCTSTR lpszPathName, 14. pDocument = CreateNewDocument(); 创建了文档!! 以后有用 15. pFrame = CreateNewFrame(pDocument, NULL); 创建框架 进去 16. 在CDocTemplate::CreateNewFrame(CDocument* pDoc, CFrameWnd* pOther)里面 CFrameWnd* pFrame = (CFrameWnd*)m_pFrameClass-CreateObject();创建框架类对象 进入构造函数 17. CFrameWnd::CFrameWnd() 出去 CMainFrame::CMainFrame() 我们可以确定在16里面创建的是CMainFrame这个对象,然后出去 18. 在CDocTemplate::CreateNewFrame(里面找到代码,其实是16的继续 if (!pFrame-LoadFrame(m_nIDResource,WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL, context)) 进去 19. BOOL CFrameWnd::LoadFrame(UINT nIDResource, DWORD dwDefaultStyle,CWnd* pParentWnd, CCreateContext* pContext) 20. LPCTSTR lpszClass = GetIconWndClass(dwDefaultStyle, nIDResource); 进去 作用:在这个函数里面注册了窗口类,然后把窗口类的名称返回 21. HICON hIcon = ::LoadIcon(hInst, ATL_MAKEINTRESOURCE(nIDResource)); 加载图标 22. PreCreateWindow(cs); 因为这个方法是个虚函数,所以我们得根据this是谁才能判断调用的是哪个函数 现在的this是CMainFrame 23. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT cs) 将来我们可以在这个函数里面设置窗口类的属性 很重要!!! 24. BOOL CFrameW

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档