【MFC】初识MFC
# MFC 简述
MFC (Microsoft Foundation Classes),微软基础类库;
是微软使用 C++
的特性,在 Win32API
基础上再次进行的封装。
# MFC 基本使用
MFC 只是一个 C++ 类库,我们只需要对 C++ 有一定了解,就能够理解 MFC 的工作机制。
而微软的宇宙第一 IDE Visual Studio
本身也替我们做好了许多工作,这里以 vs2022 为例,对 MFC 的安装与使用进行简单的说明。
# 安装
- 运行
Visual Studio Installer
-
- 点击
修改
- 选择
单个组件
选项卡 - 搜索
MFC
,勾选需要的组件 -
- 点击
修改
,等待完成即可- 我这里已经装过了,就不重新做演示了
# 新建项目
- 运行
Visual Studio 2022
- 点击
创建新项目
- 选择
空项目
- 项目名称随意,我这里写
MFCTestProject
# 配置项目
由于是空项目,什么都没有,我们需要自行做一些必要的设置。
- 右键
MFCTestProject
项目,选择属性
属性页
中选择高级
选项卡MFC的使用
选项,修改为在静态库中使用MFC
在共享DLL中使用MFC
调试时无法找到 MFC 的源码。
属性页
中展开链接器
,选择系统
选项卡子系统
选择窗口(/SUBSYSTEM:WINDOWS)
# 编写源代码
- 新建
.cpp
文件,文件名随意 - 编写如下示例代码
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class CMyFrameWnd :public CFrameWnd {
};
class CMyWinApp :public CWinApp {
public:
CMyWinApp() {
}
virtual BOOL InitInstance() {
CMyFrameWnd* frame = new CMyFrameWnd;
frame->Create(nullptr, L"MFCBase");
m_pMainWnd = frame;
frame->ShowWindow(SW_SHOW);
frame->UpdateWindow();
return TRUE;
}
};
CMyWinApp g_theApp; - F5 运行,编译运行正常会出现这样的窗口
-
至此,我们就已经建立了一个非常简单的 MFC 程序,并且它还能够运行。
# 源代码注释
接下来我们简单对代码进行一些注释:
类似 Win32API
开发时使用的 #include <windows.h>
创建继承于 CFrameWnd
类的 CMyFrameWnd
类
CFrameWnd
是对窗口框架的封装
创建继承于 CWinApp
类的 CMyWinApp
类
CWinApp
是对应用程序执行流程的抽象封装
在 CMyWinApp
类中重写 CWinApp
类的 InitInstance
成员虚函数
基于 CMyWinApp
类实例化全局对象 g_theApp
当然,这些代码也许会使你感到困惑,毕竟代码中甚至找不到你最熟悉的 main、WinMain,为什么它能够跑起来?
我们将在下篇文章探索 MFC 的程序启动机制。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 鹿鹿鱼鱼!