MFC的CwinApp与CFrameWnd的关系(3)-小白理解MFC

来源:互联网 发布:淘宝店铺怎么下架商品 编辑:程序博客网 时间:2024/05/23 15:39

1 MFC以两个主类为核心:CWinAppCFrameWnd(C代表MFCWinWnd代表Window,App代表应用程序,Frame代表框架)。回顾一下:C语言一样有个主程序mainwindow程序则是WINAPI WinMain(四个参数)MFC就是把WinMain封装到CWinApp里面。


 

2 按照C++ 类的定义:在.h类的申明构造函数,.CPP里面的构造函数实现

总的来说初始化应用程序,初始化窗口,程序的接口连接窗口。

WinApp的成员指针m_pMainWnd指向框架CFrame

 


 

#include"myapp.h"MyApp myapp;BOOL MyApp::InitInstance()//::并且是继承的虚函数构造函数{this->m_pMainWnd = new MyFrame();//既然是指针就必须new 一段内存//应用程序对象成员变量m_pMainWnd是一个窗口指针,即主窗口的指针。//初始化实例时创建N多个窗口,而只有这个指针指向的才是主窗口this->m_pMainWnd->ShowWindow(this->m_nCmdShow);//类似函数this Fun(this varibal)//m表示CWinApp的数据成员变量,'_'是一个命名的规则,方便阅读,n表int型,Cmd表命令Show表示应用程序窗口//的表现状态,如传递窗口的最大化或最小化...this->m_pMainWnd->UpdateWindow();return TRUE;//全大写的TRUE} MyFrame::MyFrame(){this->Create(NULL, TEXT("my"));// http://heduoduo321.blog.163.com/blog/static/657211222011279282841/}

如果没有实例化,MyApp myapp;会有如下报错

初始化指针不对,事件句柄出错,窗口指针出错->没有初始化

#include <afxwin.h> //MFC的头文件class MyApp : public CWinApp //类的继承{public:virtual BOOL InitInstance();//避免多层继承virtual};//结束;BOOL是大写 class MyFrame : public CFrameWnd{public:MyFrame();//构造函数与子类一样};

 

阅读全文
0 0