内容简介
第1章 位图
1.1 位的基本知识
1.2 应用举例:位图
1.2.1 准备工作(步骤1—5)
1.2.2 画图象(步骤6)
1.2.3 设备上下文:补充说明
1.2.4 创建位图(步骤7)
1.2.5 修改菜单(步骤8—10)
1.3 编译和测试
1.4 关于GDI的几点疑问
第2章 设备无关位图(DIB)
2.1 定义DIB颜色
2.2 定义DIB格式
2.3 8位象素DIB
2.4 DIB工作原理
2.5 DIB的C++类
2.6 CDIB数据和函数说明
2.7 应用举例:BasicDIB
第3章 调色板和调色板管理程序
3.1 调色板:用途及意义
3.2 逻辑调色板
3.3 硬件调色板
3.4 逻辑颜色映射到物理调色板
3.5 用COLORREF宏指定所需的颜色
3.6 调色板消息
3.7 在非调色板化设备上运行程序
3.8 查看当前硬件调色板
3.9 建议
第4章 DIB的调色板类
4.1 CDIBPal类
4.2 查看调色板的应用程序
4.3 查看DIB的应用程序
4.3.1 ViewDIB应用程序代码
4.3.2 图象视图
4.3.3 调色板视图
4.3.4 BITMAPINFO结构的视图
4.4 关于疑难问题
第5章 精灵、着色及其它
5.1 在简单计算机环境中的动画制作
5.2 Windows环境中的动画制作
5.2.1 造型动画和帧动画
5.3 各部分名称
5.3.1 精灵
5.3.2 构图、画图
5.4 移动图象的创建
5.5 高效动画制作的关键
5.6 内存中的图象
5.7 什么是光栅操作
6.1 StretchDIBits
第6章 StretchDIBits、CreateDIBSection及颜色映射
6.2 创建等同调色板
6.2.1 获取系统色
6.2.2 一般的方法
6.3 尽可能利用主机
第7章 创建屏幕缓冲视图类
7.1 开发历程
7.2 屏幕缓冲视图
7.4 COSBView类
7.3 直接处理象素,但不调用GDI
7.4.1 COSBView对象的创建
7.4.2 画图函数
7.4.3 测试阶段
第8章 创建背景图象
8.1 文档-视图通信
8.2 目标
8.3 Bkgnd应用程序
8.5 设置背景
8.4 对象的所有权
第9章 精灵、透明性、选中测试和共用调色板
9.1 CSPrite类
9.2 在文档中添加精灵
9.3 在视图中画一个新的精灵
9.4 透明性
9.5 细节问题的解决办法
9.6 增加选中测试和鼠标拖动
9.7 多次修改与测试
第10章 快速重画
10.1 重画移动的精灵
10.2 实现重画区域
第11章 增加一个三维和通知对象
11.1 z轴顺序问题
11.1.2 一些可能的解决方法
11.2 通知对象
11.1.1 位置改变也有同样的问题
11.2.1 通知的类型
11.2.2 通知对象类
11.2.3 对CSprite进行改变以使用CSpriteNotifyObj
11.3返回到z轴顺序问题
11.3.1 设置z轴顺序和删除精灵
11.4 创建精灵弹出式菜单
11.5 下一步工作
12.1 串行化CDIB对象
第12章 保存和装入场景
12.2 串行化CSprite对象
12.3 串行化CSpriteList对象
12.4 串行化CAnimDoc
12.5 测试
12.6 串行化CDIBPal
12.7 Windows Palette文件和其它RIFF格式
12.8 CDIBPal串行化函数
12.9 一个简单的调色板编辑器
12.10 Select Color对话框
12.10.1 创建颜色
12.10.2 显示颜色
第13章 改变形状的精灵
13.1 相位化图象
13.2 CPhasedSprite类
13.2.1 选中检测和CPhasedSprite对象构图
13.3 一个突出相位化精灵的样本应用程序
13.4 下一步工作
第14章 声音
14.1 声音类型
14.1.1 CD Audio
14.1.2 MIDI音乐
14.1.3 采样声音(波形)
14.2 播放声音—简便的方法
14.2.1 使用SndPlaySound
14.2.2 使用媒体控制界面(MCI)
14.3 播放声音—复杂的方法
14.3.1 底层声音功能如何播放波形
14.3.2 CWave类
14.3.3 CWave OutDevices类
14.3.4 CWaveDevWnd类
14.3.5 回到起点
14.4 正确的方法
第15章 移动和冲撞
15.1 Collide应用程序类
15.2.2 使用定时器消息
15.2 使精灵移动
15.2.1 使用多线程
15.2.3 使用一个闲逛时间处理器
15.3 视图类
15.4 CMySprite类中的冲撞检测
15.5 但是,如果……?
附录A 使用WinG库
附录B 一个静态链接库