第1章 Visual C++.NET简介 1
1.1 Visual C++.NET的新发展 1
1.1.1 Visual C++.NET的新特性 1
目 录 1
1.1.2 Visual C++.NET集成开发环境的改进 2
1.2 Visual Studio NET集成环境的窗口对象 5
1.2.1Visual Studio起始页 5
1.2.2“解决方案资源管理器”窗口 6
1.2.3“类视图”窗口 7
1.2.4“资源视图”窗口和“属性”窗口 8
1.2.5“工具箱”窗口 8
1.2.6编辑器窗口 9
1.3.1“文件”菜单 10
1.2.7“对象浏览器”窗口 10
1.3 Visual C++.NET的菜单 10
1.3.2“项目”菜单 12
1.3.3“生成”菜单 12
1.3.4“调试”菜单 12
1.3.5“工具”菜单 13
1.4本章小结 13
第2章GDI+编程基础 14
2.1 GDI+体系 14
2.2 GDI+的新特色 15
2.3 从GDI编程到GDI+编程 17
2.3.1有关设备环境句柄的概念 17
2.3.3函数重载 19
2.3.2将画刷、路径、图像、字体当做参数 19
2.3.4当前位置 20
2.3.5绘制与填充 20
2.3.6区域的操作 20
2.4 GDI+程序的开发与项目分发 21
2.4.1一个简单的GDI+程序 21
2.4.2有关UNICODE编程 26
2.5 GDI+编程基本操作 28
2.5.1构造Graphics对象 28
2.5.2绘制直线、矩形、曲线和多边形 31
2.5.3填充区域 38
2.5.4使用色彩 39
2.5.5输出文本 43
2.6本章小结 45
第3章画笔和画刷 46
3.1在GDI+中使用画笔 46
3.1.1画笔的线型 47
3.1.2画笔的对齐方式 49
3.1.3画笔的缩放及旋转 50
3.1.4画笔的线帽属性 52
3.1.5直线的连接点属性 54
3.1.6画笔的透明度 57
3.2在GDI+中使用画刷 59
3.2.1单色画刷的使用 59
3.2.2影线画刷的使用 62
3.2.3纹理画刷的使用 67
3.2.4线性渐变画刷 76
3.2.5路径渐变画刷 93
3.3本章小结 111
第4章文本和字体 112
4.1 在GDI+中使用字体 112
4.1.1理解字体系列 114
4.1.2使用GDI+字体 115
4.1.3列举出系统目前安装的字体信息 118
4.1.4定制增强型字体选择对话框 121
4.1.5字体轮廓的平滑处理 134
4.1.6创建私有字体集合 139
4.1.7获取字体(系列)尺寸 144
4.1.8定制文本输出基线 149
4.2在GDI+中输出文本 150
4.2.1测量字符串 153
4.2.2分栏显示文本 155
4.2.3字符串的去尾 158
4.2.4文本的剪裁输出 160
4.2.5测量文本的局部输出区域 162
4.2.6格式化文本输出 166
4.2.7控制文本输出方向 167
4.2.8设置文本对齐方式 168
4.2.9使用制表位 171
4.2.10显示快捷键前导字符 176
4.2.11使用单色画刷绘制文本 178
4.2.12使用影线画刷绘制文本 179
4.2.13使用纹理画刷绘制文本 180
4.2.14使用渐变画刷绘制文本 181
4.3本章小结 183
第5章路径和区域 184
5.1 在GDI+中使用路径 185
5.1.1在GDI中使用路径 185
5.1.2在GDI+中定义路径 186
5.1.3 向路径中添加几何图形 188
5.1.4开放图形与封闭图形 190
5.1.5填充路径 190
5.1.6添加子路径 192
5.1.7提取子路径的信息 193
5.1.8访问路径的点信息 196
5.1.9访问路径的点类型信息 198
5.1.10标记路径区间 203
5.1.11修改路径的外观 207
5.1.12扭曲路径 209
5.1.13拓宽路径 212
5.1.14深入理解路径变换的原理 215
5.2在GDI+中使用区域 218
5.2.1构造区域 218
5.2.2计算区域 223
5.2.3用矩形表示区域 227
5.2.4击中测试区域 228
5.3 本章小结 230
第6章在GDI+中使用变换 231
6.1变换的基础 232
6.2简单的矩阵变换 233
6.3 GDI+中的坐标系统 234
6.4绘图平面的简单矩阵变换 238
6.4.1 绘图平面的平移变换 238
6.4.2绘图平面的旋转变换 239
6.4.3 平移变换与旋转变换的具体运用 241
6.4.4绘图平面的缩放变换 243
6.5变换在文字特效处理中的运用 246
6.5.1旋转输出文本 246
6.5.2镜像输出文本 249
6.6对绘图平面实施复杂的坐标变换 251
6.6.1使用Matrix类表示矩阵变换 251
6.6.2矩阵的前置与后缀 254
6.6.3逆矩阵在变换中的运用 257
6.6.4矩阵的复合变换 258
6.6.5使用矩阵批量修改点信息 261
6.6.6二阶矩阵运算 264
6.6.7矩阵的旋转 266
6.6.8矩阵的投射变换 268
6.6.9使用矩阵变换实现文本的异形输出 269
6.7本章小结 273
第7章GDI+的色彩变换 275
7.1色彩变换的基础 275
7.2色彩的几种运算方式 279
7.2.1平移运算 280
7.2.2缩放运算 281
7.2.3旋转运算 284
7.2.4投射运算 289
7.3色彩的映射 291
7.4使用色彩变换矩阵实现RGB输出通道 292
7.5本章小结 295
第8章图像的基本处理 297
8.1 图像、位图和图元文件 297
8.2图像的基本操作 299
8.2.1 图像的打开与显示 299
8.2.2 GDI+对图元文件的支持 301
8.2.3 图像的剪裁与缩放 305
8.2.4使用插补模式控制图形的缩放质量 306
8.2.5 图片的简单旋转 309
8.2.6图片的反射和倾斜 310
8.2.7在GDI+中使用缩略图 313
8.2.8在GDI+中使用图片克隆功能 315
8.2.9在GDI+中局部缩放图片 316
8.3本章小结 317
第9章调整图像的色彩信息 318
9.1色彩校正的基础 318
9.2启用与禁用色彩校正 320
9.3设置不同的色彩调整对象 322
9.4使用色彩配置文件调整色彩信息 328
9.5 图像的Gamma曲线校正 330
9.6设置图片色彩输出通道 332
9.7使用图片的关键色显示图片 334
9.8 GDI+对阈值的支持 337
9.9调整图像调色板信息 338
9.10设置色彩校正的环绕模式和颜色 340
9.11本章小结 342
第10章 图形的编码与解码 344
10.1 图形格式的基础 344
10.2 认识编码与解码 345
10.2.1 PNG文件的特点 345
10.2.2 PNG文件的组成 346
10.2.3 PNG文件的数据块结构 347
10.3 获取图形文件的编码器信息 349
10.4 获取图形文件的解码器及编码参数信息 359
10.4.1 列出系统可用的图片解码器信息 359
10.4.2 处理图形文件的编码参数 360
10.4.3 获取指定图像格式的编码类标识函数 363
10.4.4 还原有关的编码参数 367
10.4.5 将BMP文件保存为PNG文件 371
10.4.6 将BMP文件保存为JPEG文件 373
10.4.7 GDI+对JPEG文件的保护 375
10.4.8 保存多帧图片 379
10.4.9 从多帧图片文件中读取子图片 382
10.5 获取图像的属性信息 384
10.6使用图像属性和解码器显示GIF文件 388
10.7 GDI+在多格式图像转换程序中的运用 393
10.8本章小结 397
第1 1章GDI+图形特技处理编程 398
11.1 使用GDI+实现图形的淡入淡出效果 398
11.2 GDI+在图像灰度化及伪彩色处理方面的应用 400
11.3.1 底片(负片)滤镜的制作 405
11.3 GDI+在图像滤镜制作方面的运用 405
11.3.2制作浮雕及雕刻滤镜 407
11.3.3制作油画滤镜 409
11.3.4制作木刻滤镜 411
11.3.5制作强光照射滤镜 412
11.3.6制作柔化与锐化滤镜 414
11.4 GDI+在图形合成中的运用 417
11.5 本章小结 419
第12章GDI+的使用局限与解决方法 420
12.1 GDI+在游戏程序设计中的运用 420
12.1.1游戏程序的编程准备 421
12.1.2定义子弹类 422
12.1.3定义行星类 425
12.1.4定义飞机类 431
12.1.5定义游戏变量及进行事件响应申明 435
12.1.6初始化全部的游戏元素 437
12.1.7绘制游戏运行界面 439
12.1.8 GDI+对双缓存技术的支持 442
12.2 GDI+在屏幕抓图程序中的运用 443
12.3本章小结 447
附录A绘图平面类函数列表 448
附录B GDI+画笔、画刷类函数列表 452
附录C GDI+文本及字体类函数列表 456
附录D GDI+图形路径类函数列表 458
附录E GDI+图像类函数列表 460
附录F GDI+中所有的枚举列表 462