南昌门户网站建设,兰州 网站,软件开发培训难学吗,惠州网站建设 翻译6目录
一.SDK编程
二.为什么要学MFC#xff1f;
三.MFC能做什么#xff1f;
四.MFC开发环境搭建
五.MFC项目创建
六.消息映射机制 一.SDK编程
Application Programming Interface 应用程序编程接口。
Software Development Kit 软件开发工具包#xff0c;一般会包括A…目录
一.SDK编程
二.为什么要学MFC
三.MFC能做什么
四.MFC开发环境搭建
五.MFC项目创建
六.消息映射机制 一.SDK编程
Application Programming Interface 应用程序编程接口。
Software Development Kit 软件开发工具包一般会包括API接口文档示例文档帮助文档使用手册相关工具等。
SDK程序基本骨架
int WinMain(){// 设计窗口外观及交互响应注册申请专利RegisterClass(...)// 生产窗口CreateWindow(...)// 展示窗口ShowWindow(...)// 粉刷窗口UpdateWindow(...)// 进入消息循环while (GetMessage(...)) {// 消息转换TranslateMessage(...);// 消息分发DispatchMessage(...);}
}
这是使用SDK创建一个窗口的过程可以看出来十分复杂。
重要概念 窗口就是屏幕上的一片区域接收用户的输入显示程序的输出。可以包含标题栏菜单栏工具栏控件等。 句柄(handle) (资源的编号二级指针门把手)窗口句柄文件句柄数据库连接句柄。 C窗口类对象与窗口并不是一回事它们之间惟一的关系是C窗口类对象内部定义了一个窗口句柄变量保存了与这个C窗口类对象相关的那个窗口的句柄。窗口销毁时与之对应的C窗口类对象销毁与否要看其生命周期是否结束。但C窗口类对象销毁时与之相关的窗口也将销毁 二.为什么要学MFC
在写SDK程序时需要程序员自己处理各种消息实现窗口创建注册绘制销毁程序耗费很多精力在这些地方上为了提升效率有大佬把 SDK 进行封装这就是MFC的诞生使 Windows桌面应用程序开发效率大大提升。
MFC就是封装了各种系统调用方便程序开发。SDK相当于手工作坊时代MFC相当于流水线。因为MFC是封装了 Windows操作系统的API所以写出来的程序也只支持在 Windows 上运行。 三.MFC能做什么 四.MFC开发环境搭建
VS2019下安装MFC 组件列表 五.MFC项目创建
创建MFC应用 选择程序类型 MFC文档类型 基于对话框的 MFC 项目 基于对话框的 MFC 项目是一种常见的 MFC 应用程序类型它的主要界面是一个对话框窗口。对话框窗口通常包含了控件如按钮、编辑框、列表框等和菜单等元素用于与用户交互。该类型的 MFC 项目适合处理简单的界面和交互逻辑。 基于单个文档的 MFC 项目 基于单个文档的 MFC 项目是一种支持处理单个文档的应用程序类型它包含了一个文档视图框架和一个文档类。该类型的 MFC 项目适合处理只有一个文档的应用场景如文本编辑器等。 基于多个文档的 MFC 项目 基于多个文档的 MFC 项目是一种支持处理多个文档的应用程序类型它包含了一个文档视图框架和多个文档类。该类型的 MFC 项目适合处理多个文档之间相互关联的应用场景如电子表格、绘图工具等。
基于对话框的 MFC 项目适合处理简单的界面和交互逻辑基于单个文档的 MFC 项目适合处理只有一个文档的应用场景而基于多个文档的 MFC 项目适合处理多个文档之间相互关联的复杂应用场景。
根据需要选择即可 根据需要选择即可 六.消息映射机制
MFCMicrosoft Foundation Class消息映射机制是一种方便的事件处理方式它将 Windows 操作系统中的消息与 MFC 应用程序中的事件进行关联。通过使用消息映射机制开发人员可以很方便地处理用户界面上的各种事件。
在 MFC 中每个控件都可以接收 Windows 消息例如鼠标点击、键盘输入等。当控件接收到消息时MFC 就会将消息转换为一个事件并将其传递给响应的事件处理函数。这个过程就是消息映射。
消息映射的实现需要借助一个类似于表格的结构称为消息映射表。每个消息映射表条目包含了一个消息 ID 和一个事件处理函数。当控件接收到消息时MFC 就会查找消息映射表并调用相应的事件处理函数来响应该消息。
BEGIN_MESSAGE_MAP(CMFCTest1Dlg, CDialogEx)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_TEST_BTN, CMFCTest1Dlg::OnBnClickedTestBtn)
//1 消息映射表
END_MESSAGE_MAP()//2 自动生成消息响应函数
void CMFCTest1Dlg::OnBnClickedTestBtn()
{MessageBox(_T(Test));
}// 3 消息响应函数的声明
afx_msg void OnBnClickedTestBtn();
CMFCTest1Dlg是一个对话框IDC_TEST_BTN是以一个控件按钮的消息IDOnBnClickedTestBtn 是处理按钮点击事件的成员函数
当点击对话框的按钮就会触发控件按钮的消息ID控件接收到消息就会查找消息映射表调用对应函数进行处理。