人工精选网校VC++ MFC 经典教程-基础篇
如果你打算学 Windows 桌面程序开发,MFC 大概率是绕不开的一站。它老,但大量企业内部的工具软件、工业控制界面、金融交易终端仍在用它维护和迭代。这门《VC++ MFC 经典教程-基础篇》针对的是同一个问题:让有 C++ 语法基础的人,能真正把窗口、控件、消息这些概念落到代码上,而不是停留在"
会员可免费下载本篇月会员可免费领取。
开通会员 ›会员 · 按档位
游客按标价购买,不享受上表折扣。
支付成功后自动发放网盘链接,链接失效可找客服免费补
如果你打算学 Windows 桌面程序开发,MFC 大概率是绕不开的一站。它老,但大量企业内部的工具软件、工业控制界面、金融交易终端仍在用它维护和迭代。这门《VC++ MFC 经典教程-基础篇》针对的是同一个问题:让有 C++ 语法基础的人,能真正把窗口、控件、消息这些概念落到代码上,而不是停留在"看得懂、写不出"。
这门课对应的工作场景
课程覆盖教材前十三章的内容,主线是 MFC 应用程序的基本结构。学完之后,你面对的需求大概是这样几类:给内部系统做一个带菜单、对话框、列表控件的配置工具;把一段已有的 C++ 逻辑包上图形界面;读懂公司里那套跑了十年的 MFC 老项目并做局部修改。这些活儿在招聘市场上不显眼,但需求稳定,尤其是传统行业的信息化部门和做上位机、仪器配套软件的团队。
需要说清楚的是,这门课不教 C++ 语言本身。变量、函数、类、指针这些如果还不熟,先补语言基础再进来,否则前面的章节会变成抄代码。
学完能独立做什么
- 用向导搭出一个可运行的 MFC 工程,理解文档、视图、框架窗口各自负责什么
- 手工添加菜单、工具栏、对话框资源,并把控件和成员变量关联起来
- 处理鼠标、键盘、按钮点击等消息,写自己的消息响应函数
- 用对话框做输入和参数设置,完成一次完整的数据录入与显示流程
- 看懂常见的 MFC 报错和断言,知道去哪里查、往哪个方向改
换句话说,基础篇解决的是"能独立写出一个几百行的小工具",而不是"能架构一套大型软件"。这个预期要放正,它本来就是第一阶段。
资料适合什么基础
最合适的是两类人:一是学过 C++、但没碰过 Windows 编程的学生或转行者;二是做后端或嵌入式,被安排接手 MFC 项目、需要快速上手的在职开发者。如果你已经能熟练写 MFC 程序,这门课对你偏浅,可以直接找进阶内容。
配套的章节笔记是这门资料里比较实用的部分。MFC 的坑很多集中在消息映射宏和资源 ID 的对应关系上,看视频时觉得懂了,自己敲就报错。笔记的作用是课后把这些对应关系重新过一遍,也方便面试前快速回忆。建议每完成两到三节就整理一次,不要攒到最后。
怎么用这份资料
按顺序学,不要跳。MFC 的知识点前后咬合很紧,前面没弄清窗口类和句柄的关系,后面写消息处理就是照抄。看视频时别只跟着敲,每学完一个知识点,试着把代码关掉自己重写一遍,报错的地方才是真正学到的地方。
学完全部章节后,找一个小需求独立做出来——比如一个带增删改查的通讯录,或者一个读取本地文件并展示的查看器。这个练习比再看一遍视频有用,也是你后面能拿出手的东西。
最后提醒一句:MFC 不是当前最热的桌面技术,它的价值在于存量项目的维护和改造。如果你的目标是进互联网公司做新项目,这门课的性价比不高;如果方向是传统软件、工控、仪器或政企内部系统,它是实打实能派上用场的。
本课程是《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 枚举打印机





