一个MFC程序框架
1、应用程序类 CWinApp
2、框架类 CFrameWnd
流程:
1、有且仅有一个全局的应用程序类对象 MyApp myApp;
2、在程序入口函数实现 InitInstance()
1)、给框架类对象动态分配空间(自动调用它的构造函数)
框架类MyFrame对象构造函数里创建窗口Create()
2)、框架类对象显示窗口ShowWindow()
3)、框架类对象更新窗口UpdateWindow()
4)、保存框架类对象指针给m_pMainWnd
代码
myApp.h
#pragma once
#include <afxwin.h>
// 1)应用程序类 CWinApp,派生类(子类)
class MyApp : public CWinApp
{
public:
//基类的虚函数
//派生类重写
//MFC 程序的入口地址
virtual BOOL InitInstance();
};
// 2)框架类 CFrameWnd,派生类(资料)
class MyFrame : public CFrameWnd
{
public:
MyFrame();
};
myApp.cpp
#include "myApp.h"
//有且仅有一个全局的应用程序类对象
MyApp myApp;
#pragma region MyApp
//程序的入口地址
BOOL MyApp::InitInstance()
{
/*
1、 创建框架类对象
2、 显示窗口
3、 更新窗口
4、 保存框架类对象指针
*/
//1、 创建框架类对象
MyFrame *frame = new MyFrame(); //构造函数
//2、 显示窗口
frame->ShowWindow(SW_NORMAL);
//3、 更新窗口
frame->UpdateWindow();
//4、 保存框架类对象指针
m_pMainWnd = frame;
return TRUE;
}
#pragma endregion
#pragma region MyFrame
MyFrame::MyFrame()
{
// Cwnd的成员函数 CWnd::Create
// CFrameWnd 继承于 CWnd
Create(NULL, TEXT("我的MFC程序"));
}
#pragma endregion