一、MFC简介
微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量,其中包含的类包含大量Windows句柄封装类和很多WIndows的内置控件和组件的封装类。
MFC给Windows操作系统提供了面向对象的接口,支持可重用性、自包含性以及其他OPP原则,MFC通过编写类来封装窗口、对话框以及其他对象,引入某些关键的虚函数(覆盖这些函数可以改变派生类的功能)来完成。
二、代码的编写
新建一个Win32的空项目,建立名为mfc.h的头文件和名为mfc.cpp的源文件
//mfc.h #include<afxwin.h> //mfc头文件 class MyApp:public CWinApp //CWinApp应用程序类 { public: //程序入口 virtual BOOL InitInstance(); }; class MyFrame:public CFrameWnd //窗口框架类 { public: MyFrame(); };
//mfc.cpp
#include"mfc.h" MyApp app;//全局应用程序对象,有且仅有一个 BOOL MyApp::InitInstance() { //创建窗口 MyFrame * frame = new MyFrame; //显示和更新 frame->ShowWindow(SW_SHOWNORMAL); frame->UpdateWindow(); m_pMainWnd = frame;//保存指向应用程序的主窗口的指针 return TRUE;//返回正常的初始化 } MyFrame::MyFrame() { Create(NULL, TEXT("mfc")); }
程序执行的流程:
- 程序开始前先实例化应用程序对象(有且仅有一个)
- 执行程序的入口函数 InitInstance()
- 给框架类MyFrame对象动态分配内存(自动调用它的构造函数),在其构造函数内部,通过CWnd::Create创建窗口
- 框架类对象显示窗口 Wnd::ShowWindow
- 框架类对象更新窗口 Wnd::UpdateWindow
- 保存框架类对象指针 CWinThread::m_pMainWnd
注意:对项目要进行配置 在共享DLL中使用MFC