正版资源网校VC++ MFC 经典教程-基础篇
《网校VC++ MFC 经典教程-基础篇》本课程是《VC++ MFC》第一部分,对应着教材的第1章到第13章。【技能收获】学完可掌握:C/C++ 网络编程。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向
这套《网校VC++ MFC 经典教程-基础篇》对应教材第 1 章到第 13 章,是整条 MFC 学习线的起点。它的定位很明确:把 Win32 窗口机制、MFC 的封装层次、消息映射、文档/视图结构这些底层内容讲透,而不是停留在拖控件、点按钮的层面。对于想读懂遗留代码、接手维护老项目,或者准备做 Windows 桌面端开发的开发者来说,这部分内容是绕不过去的地基。
技术栈与知识边界
课程围绕 Visual C++ 与 MFC 展开,涉及的核心概念包括 Win32 应用程序入口、窗口类注册、消息循环、MFC 的 CWinApp/CWnd/CDialog 类族、消息映射宏、SDI/MDI 框架、文档与视图分离、序列化、常用控件封装、GDI 绘图以及对话框数据交换(DDX/DDV)。第 1 到第 13 章的跨度,基本覆盖了一个 Windows 桌面程序从启动到交互的完整链路。
需要分清的是,MFC 本身是 C++ 对 Win32 API 的一层薄封装,真正决定你能不能改代码的,是对底层窗口过程和消息机制的理解程度。课程从 Win32 讲起再过渡到 MFC 封装,这个顺序是对的。如果你只记类名和函数签名,遇到自定义消息、子类化控件、多线程界面刷新这类问题时依然会卡住。建议学的时候对照两套代码看:一套纯 Win32 的骨架,一套 MFC 生成的同类功能,比较它们各自在做什么。
项目结构与可复用模块
MFC 工程的结构感比语法本身更重要。一个典型的单文档程序包含应用类、主框架窗口、视图类和文档类,四者通过框架内部的指针相互访问。看懂这套结构,你在实际项目里就能判断一段代码该放在文档层做数据处理,还是放在视图层做界面响应,而不是把所有逻辑堆进按钮的响应函数里。
- 应用类:负责初始化、注册、消息循环的挂接,是程序入口的实际承载者。
- 主框架窗口:管理菜单、工具栏、状态栏,协调视图与文档。
- 文档类:承载数据模型和序列化逻辑,是数据与界面解耦的关键。
- 视图类:负责绘制和交互,通过 GetDocument 获取数据。
这些模块是可以跨项目复用的。比如对话框数据交换的写法、序列化函数的组织方式、自定义消息的注册与响应模式,理解之后可以直接迁移到新的工程里。课程里配套的章节笔记适合在写完代码后回头对照,重点看类之间的调用关系,而不是抄一遍函数体。
学习方法与复现路径
按章节顺序推进是对的,因为 MFC 的概念是逐层叠加的:先有窗口和消息,才有控件和对话框,才有文档/视图。每学完两到三节,建议自己动手把当节的小例子从空白工程重建一次,不要依赖课程提供的那份工程继续改。重建的过程会暴露你对向导生成代码的理解盲区,比如哪些是框架自动加的、哪些是必须手写的。
到了综合部分,可以选一个自己熟悉的小工具做目标,比如带配置读写和列表展示的简易数据管理器,把文档序列化、对话框输入、列表控件绘制这几块串起来。完成后这套代码可以直接作为作品集里的 Windows 桌面项目,比单纯跟着敲一遍例子的说服力大得多。
适合谁对照实践
如果你有 C++ 基础但没接触过 Windows 编程,这套内容能帮你把语法能力落到具体平台上。如果你在维护老代码、需要看懂 MFC 工程里的消息流向,也可以把它当作查阅式的参考,遇到概念不清楚时回到对应章节。判断是否适合自己,有一个简单标准:你能不能在不看教程的情况下说清楚一个 MFC 程序从 WinMain 到窗口显示的完整过程。说不清,就值得按章节过一遍并动手复现。
本课程是《VC++ MFC》第一部分,对应着教材的第1章到第13章。
课程推荐
《网校VC++ MFC 经典教程-基础篇》本课程是《VC++ MFC》第一部分,对应着教材的第1章到第13章。【技能收获】学完可掌握:C/C++ 网络编程。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。
视频目录(231 节)
* 1.1 Windows编程模型
* 1.1.1 消息消息还是消息
* 1.1.2 Windows程序设计SDK风格
* 1.1.3 匈牙利标记法和Windows数据类型
* 1.1.4 SDK程序设计展望
* 1.2 MFC简介
* 1.2.1 使用C++和MFC的好处
* 1.2.2 MFC的设计思想
* 1.2.3 文档/视图体系结构
* 1.2.4 MFC类的分层结构
* 1.2.5 AFX函数
* 1.3 您的第一个MFC应用程序
* 1.3.1 应用程序对象
* 1.3.2 MFC如何使用应用程序对象
* 1.3.3 框架窗口对象
* 1.3.4 绘制窗口
* 1.3.5 消息映射
* 1.3.6 消息映射的工作方式
* 1.3.7 Windows、字符集和_T宏
* 1.3.8 建立应用程序
* 2.1 Windows GDI
* 2.1.1 MFC设备描述表类
* 2.1.2 设备描述表属性
* 2.1.3 绘图模式
* 2.1.4 映射模式
* 2.1.5 可编程映射模式
* 2.1.6 坐标转换
* 2.1.7 移动原点
* 2.1.8 坐标系小结
* 2.1.9 获取设备信息
* 2.2 用GDI绘图
* 2.2.1 画直线和曲线
* 2.2.2 圆椭圆、多边形以及其他形状
* 2.2.3 GDI画笔和CPen类
* 2.2.4 GDI画刷和CBrush类
* 2.2.5 画文本
* 2.2.6 GDI字体和CFont类
* 2.2.7 光栅字体与TrueType字体
* 2.2.8 旋转文本
* 2.2.9 备用对象
* 2.2.10 删除GDI对象
* 2.2.11 取消对GDI对象的选定
* 2.2.12 标尺应用程序
* 2.3 看看画了些什么
* 2.3.1 给窗口添加滚动条
* 2.3.2 设定滚动条的范围、位置和页面大小
* 2.3.3 使滚动条滑块大小和窗口尺寸同步变化
* 2.3.4 处理滚动条消息
* 2.3.5 滚动窗口
* 2.3.6 Accel应用程序
* 2.4 遗留问题
* 3.1 从鼠标获取输入
* 3.1.1 客户区鼠标消息
* 3.1.2 TicTac应用程序
* 3.1.3 非客户区鼠标消息
* 3.1.4 WM_NCHITTEST消息
* 3.1.5 WM_MOUSELEAVE和WM_MOUSEHOVER消息
* 3.1.6 鼠标滚轮
* 3.1.7 捕获鼠标
* 3.1.8 鼠标捕获的应用
* 3.19 光标
* 3.1.10 沙漏形光标
* 3.1.11 鼠标杂录
* 3.2 从键盘获取输入
* 3.2.1 输入焦点
* 3.2.2 击键消息
* 3.2.3 虚拟键代码
* 3.2.4 Shift状态及切换
* 3.2.5 字符消息
* 3.2.6 死键消息
* 3.2.7 插入符
* 3.3 VISUALKB应用程序
* 3.3.1 处理插入符
* 3.3.2 输入及编辑文本
* 3.3.3 其他有趣内容
* 4.1 菜单基础
* 4.1.1 创建菜单
* 4.1.2 加载并显示菜单
* 4.1.3 响应菜单命令
* 4.1.4 命令范围
* 4.1.5 更新菜单中的菜单项
* 4.1.6 更新范围
* 4.1.7 键盘加速键
* 4.2 SHAPES应用程序
* 4.2.1 运行MFC AppWizard
* 4.2.2 分析AppWizard的输出
* 4.2.3 AppWizard之外的工作
* 4.2.4 过程小结
* 4.3 菜单魔术
* 4.3.1 通过手工编程创建菜单
* 4.3.2 通过手工编程修改菜单
* 4.3.3 系统菜单
* 4.3.4 自制菜单
* 4.3.5 层叠菜单
* 4.3.6 上下文菜单
* 4.4 COLORS应用程序
* 4.4.1 上下文菜单
* 4.4.2 试一试
* 5.1 数组
* 5.1.1 MFC数组类
* 5.1.2 动态调整数组大小
* 5.1.3 用CArray创建类型安全数组类
* 5.2 列表
* 5.2.1 MFC列表类
* 5.2.2 用Clist创建类型安全列表类
* 5.3 映射表
* 5.3.1 MFC映射表类
* 5.3.2 映射表工作方式
* 5.3.3 提高查找效率
* 5.3.4 用CMap创建类型安全映射表类
* 5.4 类型指针类
* 6.1 CFile类
* 6.1.1 打开、关闭和创建文件
* 6.1.2 读和写
* 6.1.3 CFile派生类
* 6.1.4 枚举文件和文件夹
* 6.2 串行化和CArchive类
* 6.2.1 串行化基础
* 6.2.2 编写可串行化类
* 6.2.3 给可串行化类分配版本号:可配置版本模式
* 6.2.4 串行化工作过程
* 6.2.5 串行化CObject
* 7.1 传统控件
* 7.1.1 CButton类
* 7.1.2 CListBoX类
* 7.1.3 CStatic类
* 7.1.4 FontView应用程序
* 7.1.5 CEdit类
* 7.1.6 赶快!即时记事本
* 7.1.7 CComboBox类
* 7.1.8 CScrollBar类
* 7.2 高级控件程序设计
* 7.2.1 数字编辑校件
* 7.2.2 自制列表框
* 7.2.3 图形按钮
* 7.2.4 自定义控件的颜色
* 7.2.5 消息反射
* 8.1 模式对话框和CDialog类
* 8.1.1 对话框模板
* 8.1.2 CDialog类
* 8.1.3 创建模式对话框
* 8.1.4 对话框数据交换和对话框数据校验
* 8.1.5 与对话框中的控件相互作用
* 8.1.6 DlgDemol应用程序
* 8.2 无模式对话框
* 8.3 用对话框作为主窗口
* 8.4 属性表
* 8.5 公用对话框
* 8.5.1 修改公用对话框
* 8.5.2 Phones应用程序
* 9.1 文档/视图基础知识
* 9.1.1 再看InitInstance函数
* 9.1.2 文档对象
* 9.1.3 视图对象
* 9.1.4 框架窗口对象
* 9.1.5 动态对象创建
* 9.1.6 有关SDI文档模板的其他内容
* 9.1.7 用操作系统命令解释器注册文档类型
* 9.1.8 命令传送
* 9.1.9 预定义的命令ID和命令处理程序
* 9.2 第一个文档/视图应用程序
* 9.2.1 SdiSquares应用程序
* 9.2.2 循序渐进地创建SdiSquares
* 9.3 文档+视图=较少的工作量
* 10.1 滚动视图
* 10.1.1 CScrollView基础
* 10.1.2 CScrollView操作
* 10.1.3 优化滚动操作
* 10.1.4 ScrollDemo应用程序
* 10.1.5 普通视图转换为滚动视图
* 10.2 HTML视图
* 10.2.1 CHtmlView操作
* 10.2.2 CHtmlView可覆盖函数
* 10.2.3 在基于CHtmlView的应用程序中使用DHTML
* 10.2.4 树形视图
* 10.2.5 初始化树形视图
* 10.2.6 树形视图的成员函数和通知
* 10.2.7 DriveTree应用程序
* 10.3 列表视图
* 10.3.1 初始化列表视图
* 10.3.2 修改表现样式
* 10.3.3 在列表视图中排序
* 10.3.4 列表视图中的命中测试
* 10.3.5 WinDir应用程序
* 10.4 自制控件视图
* 11.1 MFC和多文档界面
* 11.1.1 同步文档的多个视图
* 11.1.2 MdiSquares应用程序
* 11.1.3 支持多个文档类型
* 11.1.4 MDI之外的其他选择
* 11.2 拆分窗口
* 11.2.1 动态拆分窗口
* 11.2.2 Sketch应用程序
* 11.2.3 静态拆分窗口
* 11.2.4 Wanderer应用程序
* 11.2.5 自定义命令传送
* 11.2.6 嵌套拆分窗口
* 11.2.7 带有多种视图类型的动态拆分窗口
* 12.1 工具栏
* 12.1.1 创建和初始化工具栏
* 12.1.2 固定式和浮动式工具栏
* 12.1.3 控制工具栏的可见性
* 12.1.4 保持工具栏按钮和应用程序同步
* 12.1.5 添加工具提示和状态柱工具说明
* 12.1.6 在工具栏中添加非按钮控件
* 12.1.7 更新非按钮控件
* 12.1.8 使工具栏设置永久化
* 12.1.9 AppWizard提供的工具栏支持
* 12.2 状态栏
* 12.2.1 创建和初始化状态栏
* 12.2.2 为菜单项提供上下文相关帮助
* 12.2.3 创建自定义状态栏窗格
* 12.2.4 AppWizard提供的状态栏支持
* 12.3 总结:MYWORD应用程序
* 12.3.1 主工具栏
* 12.3.2 样式栏
* 12.3.3 再谈CRichEditView
* 12.4 组合栏
* 13.1 通过文档和视图打印
* 13.1.1 Windows打印体系结构
* 13.1.2 MFC打印体系结构
* 13.1.3 打印预览
* 13.2 只有打印功能的应用程序
* 13.2.1 黑白打印预览
* 13.3 复杂的打印应用程序
* 13.3.1 串行化的唯一方法
* 13.4 打印技巧与诀窍
* 13.4.1 使用打印对话框中的选定范围单选按钮
* 13.4.2 不要假定——实践出真知!
* 13.4.3 添加默认分页支持
* 13.4.4 枚举打印机




