如果你的 Windows 桌面程序还停在“能跑就行”的阶段——按钮是系统灰、窗口边框是经典蓝、拉大拉小还会闪——那这门课要解决的就是这个具体问题:用 DuiLib 把界面从“能用”做到“像产品”。它属于 Windows 游戏编程系列的第 4 部,但内容并不局限于游戏,更像是一次针对桌面客户端 UI 的专项训练。

它真正训练的是哪个工作场景

课程围绕一条很明确的动手路线展开:先把 DuiLib 的开发环境在 Visual Studio 里配起来,编译源码、跑通第一个窗口;然后理解它的消息机制和按钮事件是怎么走的;接着进入重点,用 XML 描述界面,做页面的局部 Layout,手写标题栏的绘制,逐个熟悉常用控件;最后把 DuiLib 和 MFC 拼在一起用,并完整模拟一遍 360 安全卫士的主界面。

这对应的工作场景其实很常见:你手头有个老 MFC 项目,界面拖沓、换肤困难,想给主窗口做自定义标题栏、自绘按钮、分区布局;或者你要独立做一个启动器、工具面板、游戏登录器这类轻量客户端,希望标题栏、边距、按钮状态都能自己控制。学完之后,你至少能独立用 XML 加代码搭出一个带自绘标题栏、可拖动、控件有悬停与点击反馈的窗口,并且知道怎么把它塞进已有的 MFC 框架里。

难度与前置基础

这门课不适合零基础直接冲。你需要能看懂 C++ 类与继承,用过 Visual Studio 建工程、改配置,大致知道 Windows 消息循环和句柄是什么。MFC 部分如果完全没接触过,跟到“DuiLib 与 MFC 结合”那一节会吃力,建议先补一点对话框和窗口类的常识。反过来说,如果你已经写过 Win32 或 MFC 窗口,只是对界面美化没有体系,这门课的坡度是合适的。

资料的使用方式

建议不要按“看视频—抄代码”的节奏走,而是拆成三段用。第一段只做环境:把 DuiLib 源码编译过、第一个窗口跑起来,这一步卡住的人不少,多花时间值得。第二段用 XML 反复改布局,改一个属性就重新运行看效果,把布局和控件的行为摸成肌肉记忆。第三段再回到实战,跟着做 360 安全卫士界面时,不要一比一照抄,试着换掉配色、挪动模块,看自己能不能独立改出另一个版本。MFC 结合那部分可以单独拎出来,对照你现有项目决定要不要用。

学之前要想清楚的一点

DuiLib 是一套偏传统的 Windows 界面方案,不是当下跨平台或 Web 技术路线。它的价值在于贴合原生 Windows 客户端、与 MFC 共存、可控性高。如果你要做的正是这类项目,这门课的内容够具体、够落地;如果你想要的是移动端或跨端 UI,它会偏离你的方向。判断标准很简单:你手头有没有一个真实的 Windows 窗口需要美化,有,就值得学;没有,先放一放。

课程目录

课程目录25 集
  • 01 DuiLib开发环境配置及第一个窗口 01 DuiLib课程概览与简介.mp4
  • 02 Dui项目简介.mp4
  • 03 Dui源码编译.mp4
  • 02 DuiLib开发第一个程序 01 Dui开发环境配置.mp4
  • 02 第一个Dui窗口程序.mp4
  • 03 DuiLib的消息机制及按钮事件 01 Dui程序的消息处理机制.mp4
  • 04 DuiLib通过XML配置界面 01 Dui程序通过XML绘制窗口.mp4
  • 02 Dui程序通过XML绘制三个按钮.mp4
  • 03 WindowImplBsae基类与XML.mp4
  • 05 DuiLib页面局部Layout 01 Dui的几种布局.mp4
  • 06 DuiLib实现标题栏的绘制 01 Dui自定义标题栏之按钮美化.mp4
  • 02 Dui自定义标题栏之完整实现.mp4
  • 03 Dui自定义标题栏之后台代码.mp4
  • 07 DuiLib的界面设计器DuiDesigner.exe 01 DuiDesigner界面设计器.mp4
  • 08 DuiLib的控件 01 Dui控件之文本编辑框.mp4
  • 02 Dui控件之进度条.mp4
  • 03 Dui控件之List列表框.mp4
  • 04 Dui控件之Tab选项卡.mp4
  • 05 亲自动手制作Tab选项卡.mp4
  • 09 DuiLib与MFC的结合 01 Dui与MFC的结合应用.mp4
  • 10 DuiLib模拟360安全卫士 01 Dui模拟360卫士界面的项目工程移植.mp4
  • 02 Dui模拟360卫士界面的xml标签分析.mp4
  • 03 Dui模拟360卫士界面的后台CPP代码.mp4
  • 04 动手创建360卫士界面的标题栏及状态栏.mp4
  • 05 动手创建360卫士界面的选项卡核心区.mp4