MFC系列课程

MFC系列课程 MFC系列课程微软 MFC 编程从入门到精通 — 完整学习大纲本大纲覆盖从 C 基础到 MFC 源码级专家所需的全部知识点按循序渐进的方式组织建议按顺序学习。第一阶段入门篇 — 夯实基础第1章 · 学前准备1.1 Windows 桌面开发环境搭建Visual Studio 安装与配置MFC 组件选装说明项目模板与目录结构1.2 C 核心语法回顾类与对象、继承、多态虚函数与纯虚函数构造函数 / 析构函数顺序引用、指针与智能指针 (shared_ptr/unique_ptr)1.3 Windows API 初步认知WinMain 与窗口类注册消息循环 (GetMessage/DispatchMessage)窗口过程函数 (WndProc)句柄HWND、HDC、HINSTANCE概念第2章 · 初识 MFC2.1 MFC 是什么 — 历史、定位与现代意义2.2 MFC 类层次结构全景图CObject根基类CCmdTarget消息路由根CWnd窗口基类2.3 第一个 MFC 程序对话框应用程序 vs. 文档/视图应用程序CWinApp启动流程InitInstance与ExitInstance2.4 MFC 宏速查DECLARE_DYNAMIC/IMPLEMENT_DYNAMICDECLARE_MESSAGE_MAP/BEGIN_MESSAGE_MAP/END_MESSAGE_MAP第3章 · 消息映射机制3.1 Windows 消息系统回顾3.2 MFC 消息分类窗口消息WM_*命令消息WM_COMMAND控件通知消息WM_NOTIFY3.3 消息路由路径文档/视图架构路由OnCmdMsg虚函数3.4 自定义消息WM_USER/WM_APP范围ON_MESSAGE宏RegisterWindowMessage3.5 实践消息调试工具Spy 使用第二阶段基础篇 — 核心技能第4章 · 对话框与常用控件4.1 模态与非模态对话框DoModal执行流程CreateShowWindow4.2 数据交换与验证DDX / DDVDoDataExchange原理自定义 DDX 函数4.3 常用控件详解按钮CButton— 自绘 vs 系统编辑框CEdit静态文本CStatic列表框与组合框CListBox/CComboBox滚动条CScrollBar4.4 通用控件列表控件CListCtrl— 报表模式、虚拟列表树控件CTreeCtrl— 拖放、复选框选项卡控件CTabCtrl日期时间选择器、滑块、进度条4.5 属性表与属性页CPropertySheet/CPropertyPage4.6 对话框布局与缩放WM_SIZE响应第5章 · 文档 / 视图架构5.1 架构设计理念数据与显示分离CDocument/CView/CFrameWnd/CDocTemplate5.2 文档管理序列化Serialize/CArchiveSetModifiedFlag与保存提示多文档类型支持5.3 视图类深入CView/CScrollView/CFormView/CHtmlView/CEditViewOnDraw与OnUpdate打印与打印预览5.4 框架窗口单文档SDIvs 多文档MDI窗口分割器CSplitterWnd— 静态与动态分割5.5 文档/视图中的消息路由第6章 · 菜单、工具栏与状态栏6.1 菜单资源设计菜单编辑器弹出菜单TrackPopupMenu右键上下文菜单6.2 工具栏CToolBar创建与位图资源CMFCToolBar新风格VS2008停靠与浮动6.3 状态栏CStatusBar/CMFCStatusBar窗格Pane管理动态提示文本6.4 快捷键表Accelerator配置第7章 · GDI 绘图基础7.1 设备上下文DC概念CDC/CClientDC/CPaintDC/CWindowDCCClientDC与CPaintDC的区别7.2 GDI 对象画笔CPen画刷CBrush字体CFont—LOGFONT结构位图CBitmap— DDB 与 DIB区域CRgn7.3 基本绘图函数直线、矩形、椭圆、多边形文本输出DrawText/TextOut7.4 双缓冲绘图 — 消除闪烁7.5 坐标映射与变换SetMapModeSetWindowExt/SetViewportExt7.6 调色板与颜色管理第三阶段进阶篇 — 深化能力第8章 · 自定义控件开发8.1 子类化现有控件SubclassDlgItemSubclassWindow8.2 从零编写控件注册窗口类AfxRegisterWndClass自绘控件Owner Draw自定义绘制Custom Draw—NM_CUSTOMDRAW8.3 复合控件8.4 控件焦点与键盘导航第9章 · 多线程编程9.1 进程与线程概念9.2 MFC 线程模型工作线程AfxBeginThread界面线程CWinThread9.3 线程同步临界区CCriticalSection互斥量CMutex信号量CSemaphore事件对象CEvent9.4 线程间通信PostMessage/SendMessageCSingleLock/CMultiLock9.5 工作线程更新 UI 的安全方式9.6 线程池与异步任务Concurrency::task第10章 · 动态链接库10.1 DLL 类型对比常规 DLLRegular DLLMFC 扩展 DLLExtension DLL10.2 创建与导出__declspec(dllexport)/__declspec(dllimport).def文件导出类和函数10.3 资源管理AFX_MANAGE_STATE模块状态切换10.4 延迟加载与显式加载LoadLibrary/FreeLibrary第11章 · 文件与注册表11.1 文件 I/OCFile/CStdioFile/CMemFile大文件分块读写11.2 注册表操作CWinApp注册表方法CRegKeyATLGetProfileInt/WriteProfileString11.3 配置文件INI与 XML 替代方案第12章 · 网络编程初步12.1 Socket 基础回顾12.2 MFC Socket 类CAsyncSocket— 异步非阻塞CSocket— 阻塞式配合CArchive12.3 CSocket CArchive 序列化通信12.4 简单客户端/服务器示例TCP 聊天程序12.5 WinInet APIHTTP / FTP 访问CInternetSession第四阶段高级篇 — 全面掌握第13章 · COM 组件编程13.1 COM 基本原理接口IUnknown、引用计数、QueryInterfaceGUID / CLSID / IID13.2 MFC 实现 COMCCmdTargetCOM 支持接口映射宏BEGIN_INTERFACE_PART13.3 自动化IDispatch属性和方法暴露OLE 自动化客户端 / 服务器13.4 连接点与事件13.5 实践编写一个简单的 COM 组件第14章 · ActiveX 控件14.1 ActiveX 概述14.2 用 MFC 创建 ActiveX 控件COleControl基类属性、方法、事件定义14.3 ActiveX 控件容器在 MFC 程序中嵌入 ActiveX14.4 ActiveX 控件部署与注册第15章 · 数据库编程15.1 Windows 数据库访问技术演进15.2 ODBC开放数据库连接CDatabase/CRecordset参数化查询事务处理15.3 ADOActiveX Data Objects_ConnectionPtr/_RecordsetPtr/_CommandPtr智能指针与#import方式15.4 数据绑定控件列表控件绑定网格控件展示15.5 SQLite 嵌入式方案第16章 · 进程间通信16.1 剪贴板操作OpenClipboard/SetClipboardData自定义格式16.2 内存映射文件CreateFileMapping/MapViewOfFile16.3 命名管道CNamedPipe服务端/客户端模式16.4 Windows 消息WM_COPYDATA16.5 Mailslot邮槽第17章 · 国际化与本地化17.1 Unicode 与多字节字符集CString内部分析_T()/TEXT()宏17.2 资源本地化卫星 DLLSatellite DLL字符串表分离17.3 日期、时间、货币格式化17.4 双向文本与镜像布局RTL第18章 · 调试与诊断18.1 调试宏与断言ASSERT/VERIFYTRACE输出AfxDebugBreak18.2 内存泄漏检测CMemoryState快照对比CRT 调试堆_CrtSetDbgFlagVisual Studio 诊断工具18.3 WinDbg 基础使用符号服务器配置分析转储文件dump18.4 崩溃处理SetUnhandledExceptionFilterMiniDump 生成第五阶段实战篇 — 项目驱动第19章 · 实战一个人记账软件19.1 需求分析与界面设计19.2 SDI 文档/视图架构搭建19.3 数据存储SQLite / MFC 序列化19.4 报表图表GDI / 第三方库19.5 安装包制作Inno Setup / WiX第20章 · 实战二串口调试助手20.1 串口通信 APIWindows COM 端口20.2 多线程收发20.3 数据可视化16进制/ASCII/波形20.4 配置持久化第21章 · 实战三简易即时通讯工具21.1 TCP/UDP 通信层21.2 用户管理与好友列表21.3 文件传输21.4 程序升级CInternetSession检查版本第22章 · 实战四工业控制上位机22.1 Modbus 协议实现22.2 实时数据采集与曲线显示22.3 报警与日志系统22.4 多语言界面第六阶段专家篇 — 源码与架构第23章 · MFC 源码深度剖析23.1 如何获取与阅读 MFC 源码VS 安装目录中的atlmfc\src\mfc23.2 消息泵Message Pump实现CWinThread::PumpMessageCWinThread::Run23.3 消息映射表原理AFX_MSGMAP_ENTRY结构_GetMessageMap虚函数23.4 运行时类信息RTCICRuntimeClass结构IsKindOf实现原理23.5 命令路由追踪OnCmdMsg源码分析23.6CString内部实现与性能第24章 · 性能优化24.1 启动速度优化延迟加载 DLL减少InitInstance开销24.2 界面响应优化避免主线程阻塞WM_PAINT优化虚拟列表LVS_OWNERDATA24.3 GDI 资源管理GDI 对象泄漏排查SelectObject最佳实践24.4 内存管理自定义内存分配器对象池模式24.5 性能分析工具Visual Studio 性能探查器Windows Performance Toolkit第25章 · MFC 与新技术融合25.1 MFC 调用 C/CLI 混合模式25.2 MFC 宿主 WPF / WinForms 控件25.3 MFC 调用 WinRT API25.4 嵌入 Web 内容WebView2 (Edge Chromium)与 JavaScript 互操作25.5 从 MFC 迁移到现代框架的路径思考第26章 · 工程化实践26.1 版本控制策略Git 工作流26.2 自动化构建MSBuild / 脚本26.3 单元测试CppUnit / Google Test 与 MFC26.4 代码规范与静态分析26.5 文档生成Doxygen26.6 持续改进与技术债务管理附录附录 A · MFC 常用类速查表附录 B · Windows 消息大全分类索引附录 C · 常见错误与解决方案附录 D · 推荐书籍与在线资源附录 E · 术语中英文对照表附录 F · VS 各版本 MFC 新特性一览学习建议入门阶段第1-7章约需 6-8 周进阶阶段第8-12章约需 8-12 周高级阶段第13-18章约需 8-12 周实战阶段第19-22章穿插进行专家阶段第23-26章需持续积累。建议每学完一个章节都要动手写出可编译运行的代码来验证理解。