第一章 C++ Builder 5可视化开发概念 1 1-1 C++ Builder 5可视化开发环境 1 1-1-1 工具栏 2 1-1-2 对象观察器 3 1-1-3 窗体设计器 4 1-1-4 代码编辑器 4 1-1-5 使用C++ Builder 5的编辑功能 5 1-1-6 查找与替换特定的文本 7 1-2 一个简单的多媒体应用程序 9 1-2-1 设计MPlayer程序界面 10 1-2-2 部件的调整与对齐 10 1-2-3 添加菜单 12 1-2-4 装载初始画面 12 1-2-5 设置TOpenDialog部件的过滤器 13 1-2-6 以文本格式查看窗体文件 13 1-2-7 MPlayer程序代码 16 1-2-8 装载多媒体文件 19 1-2-9 VCL部件与内存分配 20 1-2-10 异常处理基础 20 1-2-11 运行时改变对象的属性 21 1-3 VCL与Windows API 22 1-3-1 封装Windows API函数 22 1-3-2 使用C++ Builder 5编写普通Windows API代码 22 1-4 创建多窗体工程 26 1-4-1 创建一个含有“About”对话框的例程 27 1-4-2 指定自动创建的窗体 27 1-5 使用工程管理器 28 1-5-1 工程文件的组成 28 1-5-2 使用Project Manager进行工程管理 29 1-6 使用窗体模板和对话框向导 30 1-6-1 使用窗体模板创建窗体 31 1-6-2 存储窗体模板 31 1-6-3 使用Dialog Wizard(对话框向导) 31 1-7 使用工程模板和应用程序向导 32 1-7-1 使用工程模板 32 1-7-2 使用Application Wizard(应用程序向导) 33 1-8 小 结 33 第二章 C++ Builder 5语言扩展 34 2-1 C++基本概念 34 2-1-1 类与对象 34 2-1-2 声明与定义 35 2-1-3 作用域和可见性 36 2-1-4 存储类和生存期 37 2-1-5 表达式和语句 38 2-1-6 数据类型 39 2-1-7 关键字 40 2-1-8 操作符 41 2-1-9 定义标识符的良好习惯 41 2-2 C++ Builder 5对C的基本扩展 42 2-2-1 C++编译器 43 2-2-2 代码注释 43 2-2-3 新的I/O流 44 2-2-4 对象声明 44 2-2-5 const关键字 45 2-2-6 内联函数 47 2-3 强制类型转换 48 2-4 函数 49 2-4-1 函数声明 49 2-4-2 指向函数的指针 50 2-4-3 带有缺省参数值的函数 51 2-4-4 引用类型 52 2-5 创建堆对象 54 2-5-1 指针对象 55 2-5-2 创建堆对象 58 2-6 函数重载与模板 59 2-6-1 函数重载 59 2-6-2 函数模板 60 2-6-3 类型安全链接 65 2-7 从数据结构到抽象数据类型 66 2-7-1 数据 67 2-7-2 数据结构 67 2-7-3 数据类型 68 2-7-4 抽象数据类型 70 2-8 小 结 77 第三章 C++ Builder 5与VCL 78 3-1 VCL 78 3-1-1 从OWL和MFC到VCL 78 3-1-2 使用VCL 79 3-2 C++ Builder 5工程源代码 84 3-2-1 Pascal与C++ 84 3-2-2 应用程序的初始化 85 3-2-3 创建应用程序的窗体 86 3-2-4 消息循环 89 3-3 创建Shapes程序 90 3-4 RTTI与TypInfo一瞥 94 3-5 VCL对象指针 96 3-6 VCL使用的C++ Builder 5关键字 97 3-6-1 __automated 97 3-6-2 __classid( classname ) 98 3-6-3 __closure 98 3-6-4 __declspec( delphiclass | delphireturn | pascalimplementation ) 99 3-6-5 __fastcall 100 3-6-6 __property 100 3-6-7 __published 102 3-7 小 结 103 第四章 事件与委托模型 104 4-1 事件与C++ Builder 5委托模型 104 4-1-1 事件 104 4-1-2 委托 105 4-1-3 无契约编程 106 4-2 处理鼠标和键盘事件 106 4-3 集合类模板Set 108 4-3-1 使用集合类模板 109 4-3-2 使用集合跟踪消息 110 4-4 跟踪鼠标与键盘 116 4-4-1 跟踪鼠标与键盘 116 4-4-2 处理虚拟键 122 4-4-3 直接处理事件 123 4-5 处理WM_COMMAND 126 4-6 小 结 132 第五章 创建MDI应用程序 133 5-1 多文档界面 133 5-1-1 创建父窗体 134 5-1-2 创建子窗体 135 5-1-3 窗体菜单的融合 138 5-2 添加属性与方法 140 5-2-1 添加父窗体的事件处理代码 140 5-2-2 添加子窗体的事件处理代码 142 5-3 使用通用对话框 149 5-3-1 文件打开对话框部件和文件保存对话框部件 149 5-3-2 查找对话框部件 153 5-3-3 替换对话框部件 154 5-3-4 字体对话框部件 155 5-4 文件打印 157 5-4-1 TPrinter对象 157 5-4-2 打印对话框部件 159 5-4-3 打印机设置对话框部件 160 5-5 对文本编辑器的改进 161 5-5-1 添加工具栏 161 5-5-2 跟踪子窗体 163 5-5-3 使用Tag属性 164 5-5-4 再谈GroupIndex属性 167 5-5-5 菜单的动态控制 168 5-6 小 结 170 第六章 面向对象程序设计基础 171 6-1 类类型与程序设计语言 171 6-1-1 类的一般结构 171 6-1-2 面向类的程序设计 173 6-1-3 类与抽象数据类型 174 6-2 对象与对象交互 174 6-2-1 对象 174 6-2-2 对象标识 176 6-2-3 对象交互的客户/服务器机制 178 6-3 从C到C++的过渡 180 6-3-1 对抽象的再认识 181 6-3-2 过程式程序设计 181 6-3-3 全局对象 182 6-3-4 局部对象 182 6-3-5 数据封装 183 6-3-6 对对象的再认识 183 6-4 类的成员 184 6-4-1 静态成员 184 6-4-2 内联成员函数 186 6-4-3 带缺省参数值的成员函数 188 6-4-4 类的友元 189 6-4-5 类作用域与名字空间 193 6-4-6 局部类与嵌套类 199 6-4-7 指向类成员的指针 202 6-5 构造函数和析构函数 202 6-5-1 构造函数与析构函数 203 6-5-2 数据成员的初始化 207 6-5-3 赋值 210 6-5-4 浅复制与深复制 211 6-5-5 const修饰的成员函数 213 6-5-6 类型转换 215 6-6 存储管理 216 6-6-1 对象数组 216 6-6-2 构造函数与析构函数 219 6-7 类型模板 220 6-8 小 结 225 第七章 异常处理基础 227 7-1 异常处理的基本理论 227 7-2 异常处理的引发 230 7-3 栈框架的调整与异常接口规范 233 7-3-1 栈框架的调整 233 7-3-2 异常接口规范说明 233 7-4 VCL异常类 233 7-4-1 VCL异常类 234 7-4-2 使用VCL异常类 235 7-5 小 结 247 第八章 继 承 248 8-1 继承的基本概念 248 8-2 访问控制与支配规则 253 8-2-1 访问控制 253 8-2-2 支配规则 259 8-3 构造函数与析构函数 261 8-3-1 构造函数与析构函数 261 8-3-2 隐含的复制初始化和赋值 262 8-4 类型适应与多态性 264 8-5 多重继承 267 8-6 读写自定义格式的文件数据 271 8-6-1 参考文献信息的组织 271 8-6-2 VCL流类 274 8-6-3 TReferenceStream类 276 8-6-4 主窗体的设计与实现 284 8-7 小 结 332 第九章 重 载 333 9-1 重载的基本类型 333 9-2 类中成员函数的重载 333 9-3 操作符重载 335 9-4 特殊操作符的重载 343 9-4-1 下标操作符的重载 343 9-4-2 函数调用操作符的重载 345 9-4-3 成员选择操作符的重载 345 9-4-4 增量和减量操作符的重载 347 9-4-5 new和delete操作符的重载 348 9-5 操作符重载与类型转换 351 9-6 小 结 353 第十章 多态性与动态联编 354 10-1 动态联编的实现机制 354 10-1-1 联编与动态联编 354 10-1-2 虚函数 355 10-1-3 动态联编的实现机制 358 10-2 动态类型 361 10-2-1 运行时的类型识别 361 10-2-2 动态类型强制转换 364 10-3 特殊虚函数 365 10-3-1 虚析构函数 365 10-3-2 纯虚函数 366 10-3-3 操作符虚函数 367 10-4 Object Pascal与C++ Builder 367 10-4-1 处理RTTI的差异 367 10-4-2 对象标识与实例化 368 10-4-3 VCL类的对象构造 371 10-4-4 在基类构造函数中调用虚函数 372 10-4-5 对象析构 374 10-4-6 成员函数AfterConstruction与BeforeDestruction 375 10-4-7 类虚函数(Class virtual function) 375 10-5 抽象类——对类的再次抽象 375 10-6 小 结 377 第十一章 创建部件 378 11-1 从已有的部件继承 378 11-2 理解C++ Builder 5的包 382 11-2-1 使用包 382 11-2-2 使用运行时包 382 11-2-3 包的需求列表和包含列表 384 11-2-4 使用设计时包 385 11-2-5 创建包 386 11-2-6 分发包 388 11-3 创建部件 388 11-4 小 结 398 第十二章 游戏编程 399 12-1 围棋打谱程序“WeiQi” 399 12-1-1 TWeiqiBoard类 399 12-1-2 围棋打谱程序“WeiQi” 414 12-2 DirectX编程 431 12-2-1 DDraw实例 431 12-2-2 DirectDraw属性的初始化 437 12-2-3 设置DirectDraw的图形模式 437 12-2-4 创建表面与缓冲区 440 12-2-5 文本输出 443 12-2-6 表面切换 443 12-2-7 响应用户击键 444 12-2-8 释放DirectDraw对象 444 12-3 小 结 445
|