【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 许可协议。转载请注明来自 鹿鹿鱼鱼!