图书介绍
Windows95程序设计pdf电子书版本下载
- (美)(C.佩措尔德)Charles Petzold著;郑全战,岚山译 著
- 出版社: 北京:清华大学出版社
- ISBN:730202619X
- 出版时间:1997
- 标注页数:875页
- 文件大小:40MB
- 文件页数:892页
- 主题词:
PDF下载
下载说明
Windows95程序设计PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 开始 3
第1章 README.TXT 3
1.1 对程序员的挑战 3
目录 3
1.2 基本原则 4
1.3 Windows简史 6
1.4 本书简史 7
1.5 让我们开始 9
第2章 Hello,Windows 95 10
2.1 WINDOWS的特色 10
2.1.1 图形用户界面(GUI) 10
2.1.3 一致的用户界面 11
2.1.4 多任务的优点 11
2.1.2 GUI的概念和基本原理 11
2.1.5 内存管理 12
2.1.6 与设备无关的图形界面 12
2.1.7 投入Windows 13
2.1.8 函数调用 13
2.1.9 面向对象的程序设计 14
2.1.10 消息驱动式体系结构 14
2.1.11 窗口过程 14
2.2 编写第一个Windows程序 15
2.2.1 传统程序的问题何在 16
2.2.2 HELLOWIN的文件 16
2.2.3 Make文件 19
2.2.4 C源代码文件 20
2.2.5 Windows函数调用 20
2.2.6 大写字母标识符 21
2.2.8 句柄简介 22
2.2.7 新的数据类型 22
2.2.9 匈牙利表示法 23
2.2.10 程序的入口点 24
2.2.11 注册窗口类 25
2.2.12 创建窗口 28
2.2.13 显示窗口 29
2.2.14 消息循环 29
2.2.15 窗口过程 31
2.2.16 处理消息 32
2.2.17 播放声音文件 32
2.2.18 WM_PAINT消息 33
2.2.19 WM_DESTROY消息 34
2.3 Windows程序设计的难点 34
2.3.1 别调用我,我会调用你 35
2.3.2 进队消息与不进队消息 36
2.3.4 学习曲线 37
2.3.3 别像只懒猪 37
第3章 输出文本 39
3.1 绘图和刷新 39
3.1.1 WM_PAINT消息 40
3.1.2 有效矩形和无效矩形 40
3.2 GDI简介 41
3.2.1 设备环境 41
3.2.2 获取设备环境句柄:方法一 42
3.2.3 绘图信息结构 43
3.2.4 获取设备环境句柄:方法二 44
3.2.5 TextOut:细节 45
3.2.6 系统字体 46
3.2.7 字符大小 47
3.2.8 文本尺度:细节 47
3.2.9 格式化文本 48
3.2.10 综合使用 49
3.2.11 SYSMETS1.C窗口过程 54
3.2.12 空间不够 55
3.2.13 客户区的大小 55
3.3 滚动条 56
3.3.1 滚动条的范围和位置 57
3.3.2 滚动条消息 58
3.3.3 在SYSTEMS中加入滚动功能 59
3.3.4 绘图程序的组织 63
3.3.5 建立更好的滚动条 64
3.3.6 不用鼠标怎么办 69
第4章 图形基础 70
4.1 GDI原理 70
4.2 GDI的结构 71
4.2.2 GDI图元 72
4.2.1 函数调用的类型 72
4.2.3 其它方面 73
4.3 设备环境 74
4.3.1 获取设备环境的句柄 74
4.3.2 获取设备环境信息 76
4.3.3 DEVCAPS1程序 76
4.3.4 设备的大小 80
4.3.5 关于色彩 81
4.3.6 设备环境属性 82
4.3.7 保存设备环境 83
4.4 画线 84
4.4.1 边界框 89
4.4.2 Bezier样条 95
4.4.3 使用现有画笔(stock pen) 100
4.4.4 画笔的创建、选择和删除 101
4.4.6 绘图方式 104
4.4.5 填充空隙 104
4.5 绘制填充区域 106
4.5.1 Polygon函数和多边形填充方式 107
4.5.2 用画刷填充内部 108
4.6 映射方式 109
4.6.1 设备坐标和逻辑坐标 111
4.6.2 设备坐标系 111
4.6.3 视口和窗口 112
4.6.4 MM_TEXT映射方式 113
4.6.5 “度量”映射方式 116
4.6.6 “自作主张的”映射方式 119
4.6.7 WHATSIZE程序 124
4.7 矩形、区域和剪裁 127
4.7.1 矩形函数 127
4.7.2 随机矩形 129
4.7.3 创建和绘制区域 133
4.7.4 矩形与区域的剪裁 134
4.7.5 CLOVER程序 135
4.8 路径 139
4.8.1 创建和绘制路径 139
4.8.2 扩展的画笔 140
4.9 BITS与BLTS 144
4.9.1 色彩和位图 145
4.9.2 设备无关位图(DIB) 145
4.9.3 DIB文件 146
4.9.4 紧缩的DIB存储格式 147
4.9.5 显示DIB 148
4.9.6 将DIB转换为位图对象 148
4.10 GDI位图对象 149
4.10.1 在程序中创建位图 149
4.10.2 单色位图格式 150
4.10.4 内存设备环境 152
4.10.3 彩色位图格式 152
4.10.5 强大的BLT 154
4.10.6 用BitBlt传输二进制位 157
4.10.7 DrawBitmap函数 158
4.10.8 使用各种的ROP码 160
4.10.9 再论内存设备环境 162
4.10.10 色彩转换 165
4.10.11 映射方式转换 166
4.10.12 用StretchBlt放缩位图 166
4.10.13 画刷和位图 167
4.11 元文件 169
4.11.1 内存元文件的简单应用 169
4.11.2 将元文件保存在磁盘上 173
4.12 增强型元文件 173
4.12.2 基本过程 174
4.12.1 改进 174
4.12.3 内部机制 177
4.12.4 显示精确的图象 181
4.13 文本和字体 181
4.13.1 简单的文本输出 181
4.13.2 文本的设备环境属性 183
4.13.3 使用现有字体 185
4.13.4 字体类型 185
4.13.5 TrueType字体 186
4.13.6 EZFONT系统 187
4.13.7 内部机制 190
4.13.8 简单的文本格式化 191
4.13.9 处理段落 193
5.1.1 忽略键盘 201
5.1 键盘基础 201
第5章 键盘 201
第二部分 输入手段 201
5.1.2 焦点,焦点,谁获得了焦点 202
5.1.3 击键和字符 203
5.2 击键消息 203
5.2.1 系统击键与非系统击键 203
5.2.2 IParam变量 204
5.2.3 虚拟键码 206
5.2.4 换档状态 208
5.2.5 使用击键消息 208
5.3 增强SYSMETS:增加键盘接口 209
5.3.1 加入WM_KEYDOWN逻辑 209
5.3.2 发送消息 211
5.4 字符消息 216
5.4.1 WM_CHAR消息 218
5.5 观察键盘消息 219
5.4.2 死字符消息 219
5.6 插入符(不是光标) 224
5.6.1 插入符函数 224
5.6.2 TYPER程序 225
5.7 Windows字符集 232
5.7.1 OEM字符集 232
5.7.2 ANSI字符集 233
5.7.3 OEM、ANSI和字体 233
5.8 国际化考虑 234
5.8.1 字符集的处理 234
5.8.2 与MS-DOS交流 235
5.8.3 数字键盘的使用 236
5.8.4 Windows NT的Unicode解决方案 237
6.1 鼠标基础 238
第6章 鼠标 238
6.1.1 一些简单的定义 239
6.2 客户区鼠标消息 239
6.2.1 简单的鼠标处理:一个例子 240
6.2.2 处理换档键 244
6.2.3 双击鼠标键 245
6.3 非客户区鼠标消息 246
6.3.1 命中测试 247
6.3.2 从消息产生消息 248
6.4 程序中的命中测试 249
6.4.1 一个假想的例子 249
6.4.2 示例程序 249
6.4.3 用键盘模拟鼠标 253
6.4.4 在CHECKER中加入键盘接口 254
6.4.5 将子窗口用于命中测试 258
6.4.6 CHECKER中的子窗口 259
6.5 鼠标的捕获 263
6.5.1 画一个矩形 263
6.5.2 捕获的解决方案 267
6.5.3 BLOKOUT2程序 268
第7章 定时器 272
7.1 定时器基础 273
7.1.1 系统和定时器 273
7.1.2 定时器消息不是异步的 273
7.2 定时器的使用:三种方法 274
7.2.1 方法一 274
7.2.2 方法二 280
7.2.3 方法三 283
7.3 定时器用于时钟 283
7.3.2 获取日前和时间 287
7.3.1 弹出式窗口的定位和缩放 287
7.3.3 国际化 288
7.3.4 构造模拟时钟 289
7.4 Windows标准时间 294
7.5 动画 294
第8章 子窗口控制 298
8.1 按钮类 299
8.1.1 创建子窗口 303
8.1.2 子窗口向父窗口发消息 304
8.1.3 父窗口向子窗口发送消息 305
8.1.4 压入按钮 305
8.1.5 复选框 306
8.1.6 单选按钮 307
8.1.7 分组框 307
8.1.9 可见的和启用的按钮 308
8.1.8 改变按钮文本 308
8.1.10 按钮和输入焦点 309
8.2 控制与颜色 310
8.2.1 系统颜色 310
8.2.2 按钮颜色 311
8.2.3 WM_CTLCOLORBTN消息 312
8.2.4 拥有者绘制按钮(Owner.Drawn Buttons) 313
8.3 静态类 319
8.4 滚动条类 320
8.4.1 COLORS1程序 321
8.4.2 自动键盘接口 327
8.4.3 窗口子类化 328
8.4.4 给背景着色 328
8.4.5 给滚动条和静态文本着色 329
8.5 编辑类 330
8.5.2 编辑控制通知 333
8.5.1 编辑类风格 333
8.5.3 使用编辑控制 334
8.5.4 发送给编辑控制的消息 334
8.6 列表框类 335
8.6.1 列表框风格 336
8.6.2 将串放入列表框 337
8.6.3 选择和获取项 338
8.6.4 接收来自列表框的消息 339
8.6.5 一个简单的列表框应用程序 340
8.6.6 文件列表 343
8.6.7 Windows的Head程序 344
第三部分 使用资源 351
第9章 图标、光标、位图和字符串 351
9.1 编译资源 351
9.2 图标和光标 352
9.2.1 图象编辑器 355
9.2.2 获取图标句柄 357
9.2.3 在程序中使用图标 358
9.2.4 使用其它的光标 359
9.2.5 位图:象素组成的图象 360
9.2.6 使用位图和画刷 360
9.3 字符串 364
9.3.1 使用字符串资源 364
9.3.2 在消息框中使用字符串 365
9.4 用户定义的资源 366
第10章 菜单和加速键 373
10.1 菜单 373
10.1.1 菜单结构 374
10.1.2 菜单模板 374
10.1.3 在程序中引用菜单 376
10.1.4 菜单和消息 377
10.1.5 示例程序 379
10.1.6 菜单设计规范 385
10.1.7 定义菜单的复杂方法 385
10.1.8 定义菜单的第三种方法 386
10.1.9 浮动弹出式菜单 387
10.1.10 使用系统菜单 391
10.1.11 改变菜单 394
10.1.12 其它菜单命令 395
10.1.13 创建菜单的非正统方法 396
10.2 在菜单中使用位图 400
10.2.1 创建菜单位图的两种方法 408
10.2.2 内存设备环境 408
10.2.3 用文本创建位图 409
10.2.4 位图的比例缩放 410
10.2.5 将位图放入菜单中 411
10.2.6 增加键盘接口 413
10.3 加速键 413
10.3.1 为什么要使用加速键 413
10.3.2 安排加速键的几条规则 414
10.3.3 加速键表 414
10.3.4 加速键表的装入 416
10.3.5 键盘代码转换 416
10.3.6 接收加速键消息 417
10.3.7 菜单与加速键应用程序POPPAD 418
10.3.8 启用菜单项 424
10.3.9 处理菜单项 424
第11章 对话框 427
11.1 模态对话框 427
11.1.1 创建个“About”对话框 428
11.1.2 对话框模板 431
11.1.3 对话框过程 433
11.1.4 激活对话框 434
11.1.5 关于对话框风格的补充说明 435
11.1.6 关于定义控制的补充说明 436
11.1.7 一个更复杂的对话框 438
11.1.8 使用对话框控制 444
11.1.9 OK和Cancel按钮 446
11.1.10 Tab停留位和组 447
11.1.11 在对话框上画图 449
11.1.12 将其它函数用于对话框 450
11.1.13 定义自己的控制 450
11.2 消息框 457
11.2.1 弹出信息 458
11.3 非模态对话框 458
11.3.1 模态对话框与非模态对话框的区别 459
11.3.2 新的COLORS程序 461
11.3.3 HEXCALC:窗口还是对话框 466
11.3.4 创造性地使用控制ID 472
11.4 通用对话框 472
11.4.1 增强POPPAD 473
11.4.2 改变字体 492
11.4.3 查找与替换 492
11.4.4 只调用一个函数的Windows程序 493
第12章 现代用户界面 495
12.1 通用控制基础 496
12.1.1 库初始化 497
12.1.2 创建通用控制 498
12.1.3 通用控制风格 499
12.1.4 向通用控制发送消息 502
12.1.5 来自通用控制的通知消息 503
12.2 框架窗口控制 507
12.2.1 工具栏 507
12.2.2 创建工具栏 508
12.2.3 状态栏 524
12.2.4 GADGETS程序 529
12.3 属性表格 561
12.3.1 创建属性表格 562
12.3.2 属性表格对话框过程 568
12.3.3 PROPERTY程序 574
第四部分 核心和打印机 599
第13章 存储管理与文件I/O 599
13.1 内存:好的、坏的和支离破碎的 599
13.1.1 分段内存 599
13.1.2 中期的解决方案 601
13.1.3 最后是无可争议的32位 602
13.2 内存分配 605
13.2.1 C的库函数 605
13.2.2 Windows 95内存分配基础 605
13.2.3 可移动的内存 606
13.2.4 可丢弃内存 608
13.2.5 其它函数和标志 608
13.2.6 指针合法吗? 608
13.2.7 虚拟内存函数 609
13.2.8 堆函数 610
13.3 文件输入/输出 610
13.3.1 以前的方式 610
13.3.2 Windows 95的不同之处 610
13.3.3 Windows 95文件I/O函数 611
13.3.4 内存映射I/O 611
14.1 多任务的各种模式 613
14.1.1 DOS下的多任务? 613
第14章 多任务和多线程 613
14.1.2 非抢占式的多任务 614
14.1.3 PM和串行化的消息队列 615
14.1.4 多线程解决方案 615
14.1.5 多线程体系结构 616
14.1.6 线程间的“争吵” 616
14.1.7 Windows的好处 617
14.1.8 新的!先进的!有线程了! 618
14.2 Windows 95多线程 618
14.2.1 再论随机矩形 618
14.2.2 程序设计竞赛的问题 621
14.2.3 多线程解决方案 628
14.2.4 有问题吗? 636
14.3.1 临界区 637
14.3 线程同步 637
14.2.5 Sleep的好处 637
14.3.2 互斥(mutex)对象 639
14.4 事件信号 639
14.4.1 BIGJOB1程序 639
14.4.2 事件对象 644
14.5 线程局部存储(TLS) 648
第15章 使用打印机 650
15.1 打印、后台处理和打印函数 651
15.2 打印机设备环境 654
15.2.1 获取CreateDC参数 654
15.2.2 修改后的DEVCAPS1程序 658
15.2.3 PrintProperties调用 667
15.2.4 检查BitBlt支持 668
15.3 FORMFEED程序 668
15.4 打印图形和文本 670
15.4.1 打印的基本过程 673
15.4.2 使用放弃过程来取消打印 675
15.4.3 Windows如何使用AbortProc 677
15.4.4 实现放弃过程 677
15.4.5 增加打印对话框 680
15.4.6 为POPPAD增加打印功能 684
15.4.7 处理错误码 689
15.5 打印分带技术 691
15.5.1 分带原理 691
15.5.2 分带技术的实现 694
15.6 打印机和字体 697
第五部分 数据交换和链接 701
第16章 剪贴板 701
16.1 剪贴板的简单使用 701
16.1.1 标准剪贴板数据格式 701
16.1.2 传送文本到剪贴板 702
16.1.3 从剪贴板上获取文本 703
16.1.4 打开和关闭剪贴板 704
16.1.5 使用位图剪贴板 705
16.1.6 元文件和元文件图片 706
16.2 复杂的剪贴板用法 710
16.2.1 利用多个数据项 710
16.2.2 延迟生成 711
16.2.3 私有数据格式 713
16.3 实现剪贴板浏览器 715
16.3.1 剪贴板浏览器链 715
16.3.2 剪贴板浏览器的函数和消息 715
16.3.3 一个简单的剪贴板浏览器 718
第17章 动态数据交换(DDE) 721
17.1 基本概念 722
17.1.1 应用程序、主题和项 722
17.1.2 对话的类型 723
17.1.3 字符串和原子 727
17.2 一个DDE服务器程序 728
17.2.1 DDEPOP1程序 742
17.2.2 WM_DDE_INITIATE消息 743
17.2.3 ServerProc窗口过程 743
17.2.4 WM_DDE_REQUEST消息 744
17.2.5 DDEPOP1的PostDataMessage函数 745
17.2.6 WM_DDE_ADVISE消息 746
17.2.7 更新数据项 747
17.2.8 WM_DDE_UNADVISE消息 748
17.2.9 WM_DDE_TERMINATE消息 748
17.3 一个DDE客户程序 748
17.3.1 发动DDE对话 756
17.3.2 WM_DDE_DATA消息 757
17.4.1 概念上的差异 758
17.3.3 WM_DDE_TERMINATE消息 758
17.4 DDE管理库 758
17.4.2 DDE的DDEML方式 759
第18章 多文档界面 771
18.1 MDI的组成 771
18.2 WINDOWS 95和MDI 772
18.3 示例程序 773
18.3.1 三个菜单 785
18.3.2 程序初始化 785
18.4 创建子窗口 787
18.5 关于框架窗口的消息处理 787
18.6 子文档窗口 788
18.7 结束处理 790
18.8 窗口过程的强大功能 790
19.1 库的基本知识 791
第19章 动态链接库 791
19.1.1 库:一词多义 792
19.2 一个简单的DLL 792
19.3 DLL中的共享内存 796
19.3.1 STRLIB库 797
19.3.2 库入口/出口点 800
19.3.3 STRPROG程序 801
19.3.4 运行STRPROG 806
19.3.5 在STRPROG实例之间共享数据 807
19.4 对库的一些限制 807
19.5 不用输入的动态链接 808
19.6 纯资源库 809
第20章 何谓OLE 814
20.1 OLE基础 815
20.1.1 连接到OLE库 815
20.1.2 解释结果代码 816
20.1.3 组件对象模型(COM)接口 819
20.1.4 IUnknown服务 824
20.1.5 OLE是一种客户/服务器规范吗? 828
20.2 私有组件服务器 828
20.2.1 IMALLOC.DLL 833
20.2.2 那些古怪的宏 834
20.2.3 由IUnknown提供的服务 836
20.3 私有组件的客户 840
20.4 公共组件的服务器 849
20.4.1 登记表的作用 857
20.4.2 产生和使用CLSID的技术 860
20.4.3 类工厂组件 861
20.4.4 控制服务器的生命周期 863
20.5 公共组件客户 865
20.6 最后的话 874