《Windows 3.0 67个应用程序及库的剖析》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:范植华,白光野编
  • 出 版 社:北京科海培训中心
  • 出版年份:1992
  • ISBN:
  • 页数:706 页
图书介绍:

第一章 Windows概貌 1

16.1.4 书写板做什么 (60 1

1.1 Windows简要历史回顾 1

目录 1

第一部分 准备 1

序言 1

1.2 从用户角度看Windows 2

1.2.1 图形用户界面(GUI) 2

1.2.2 GUI的概念及其基本原理 2

1.2.3 一致性的用户界面 3

1.2.4 多任务的优点 4

1.2.5 内存管理 5

1.2.6 与设备无关的图形界面 6

1.2.7 MS-DOS应用程序 6

1.3 从程序员角度看Windows 6

1.3.1 Windows和MS-DOS 6

1.3.3 函数调用 7

1.3.2 Windows程序的特点 7

1.3.5 面向目标的程序设计 8

1.3.4 动态链接 8

1.3.6 消息驱动的程序结构 9

1.3.7 窗口过程 9

1.4 第一个Windows应用程序 10

1.4.1 这程序中有错吗? 10

1.4.2 HELLOWIN程序文件 11

1.4.3 Make文件 14

1.4.4 C源代码文件 15

1.4.6 大写字母标识符 16

1.4.5 Windows函数调用 16

1.4.7 新的数据类型 17

1.4.8 获得一个句柄 17

1.4.9 匈牙利表示法 18

1.4.10 程序入口点 19

1.4.11 登记窗口类别 19

1.4.12 创建窗口 22

1.4.13 显示窗口 23

1.4.14 消息循环 23

1.4.15 窗口过程 25

1.4.16 处理消息 25

1.4.17 WM__PAINT消息 26

1.4.18 WM__DESTROY消息 27

1.5 Windows程序设计的障碍 28

1.4.19 模块定义文件 28

1.5.1 Don't Call me,I'll Call You 29

1.5.2 排队的和不排队的消息 30

1.5.3 非抢先的多任务 31

1.5.4 学习策略 32

第二章 绘制正文 33

2.1 绘制和重画 33

2.1.1 WM__PAINT消息 34

2.1.2 有效的和无效的矩形 34

5.2.1 方法一 (1 35

2.2 GDI介绍 35

2.2.1 设备上下文 35

2.2.2 获取设备上下文句柄的方法一 36

2.2.3 PAINTSTRUCT结构 37

2.2.4 获取设备上下文句柄的方法二 38

2.2.5 TextOut的细节 39

2.2.6 系统字体 40

2.2.7 字符大小 40

2.2.8 正文尺度的细节 41

2.2.9 格式化正文 42

2.2.10 小结为一个简单程序 43

2.2.11 SYSMETSl.C的窗口过程 47

2.2.13 用户区域的大小 49

2.2.12 没有足够的显示空间! 49

2.3 滚动杆 50

2.3.1 滚动杆范围和位置 51

2.3.2 滚动杆消息 52

2.3.3 SYSMETS的滚动 53

2.3.4 构造你自己的绘图程序 57

2.3.5 建立更好的滚动杆 58

2.3.6 若不想使用鼠标器 62

第二部分 读输入 64

第三章 键盘 64

3.1 键盘工作原理 64

3.1.1 键盘驱动程序 64

3.1.3 输入焦点 65

3.1.2 对键盘的忽略 65

3.1.4 击键和字符 66

3.2 击键消息 66

3.2.1 系统和非系统击键 67

3.2.2 lParam变量 67

3.2.3 虚键码 69

3.2.4 换档状态 71

3.2.5 击键消息的使用 71

3.3 对SYSMETS的增强:加入键盘接口 72

3.3.1 增加WM__KEYDOWN逻辑 72

3.3.2 发送消息 74

3.4 字符消息 79

3.4.2 死字符消息 81

3.4.1 WM__CHAR消息 81

3.5 查看键盘消息 82

3.6 插入记号(不是光标) 86

3.6.1 插入记号函数 87

3.6.2 TYPE程序 87

3.7 Windows字符集 94

3.7.1 OEM字符集 94

3.7.3 OEM、ANSI和字体 95

3.7.2 ANSI字符集 95

3.8 关于国际化要考虑的问题 96

3.8.1 字符集的活用 96

3.8.2 话说MS-DOS 97

3.8.3 数字小键盘的使用 98

第四章 鼠标器 100

4.1 鼠标器工作原理 100

4.1.1 一些重要的定义 100

4.2 用户区域的鼠标器消息 101

4.2.1 简单的鼠标器处理一例 102

4.2.2 POINT、RECT和lParam 105

4.2.4 鼠标器的二次卡嗒 107

4.2.3 处理换档键 107

4.3 非用户区域的鼠标器消息 108

4.3.1 命中测试消息 110

4.3.2 由消息产生消息 110

4.4 应用程序中的命中测试 111

4.4.1 一个假想的例子 111

4.4.2 一个样本程序 111

4.4.3 用键盘仿真鼠标器 115

4.4.4 对CHECKER程序附加键盘接口 116

4.4.5 命中测试的子窗口用法 120

4.4.6 CHECKER程序中的子窗口 121

4.5 捕捉鼠标 125

4.5.1 BLOWUPl程序 125

4.5.2 改变鼠标器光标的形状 129

4.5.3 StretchBlt调用 130

4.5.4 画捕捉块 130

第五章 计时器 132

5.1.1 SYSTEM.DRV和Windows计时器 133

5.1 计时器工作原理 133

5.1.2 计时器消息不是异步的 134

5.2 使用计时器的三种方法 135

5.2.1.1 如何处理没有空余的计时器情况 136

5.2.1.2 一个示例程序 137

5.2.1.3 Windows的颜色使用 140

5.2.2 方法二 141

5.2.2.1 一个示例程序 143

5.2.2.2 止确处置反调用函数 145

5.2.3 方法三 146

5.3 使用计时器作状态报告 147

5.3.1 图标的活用 149

5.3.2 强迫显示图标 150

5.3.5 使用浮点运算 151

5.4 使用计时器作为时钟 151

5.3.4 计算自由内存 151

5.3.3 保持图标只显示为图标 151

5.4.1 确定弹出式窗口的位置和大小 155

5.4.2 获得日期和时间 155

5.4.3 国际化 156

5.5 Windows标准时间 157

第六章 子窗口控制 158

6.1 按钮类别 159

6.1.1 创建子窗口 162

6.1.2 子窗口与父窗口的通话 164

6.1.3 父窗口与子窗口的通话 164

6.1.4 下压式按钮 165

6.1.5 检查框 165

6.1.6 圆形按钮 166

6.1.10 可见的和能使的按钮 167

6.1.7 成组框 167

6.1.8 用户定义的按钮 167

6.1.9 修改按钮正文 167

6.1.11 按钮和输入焦点 168

6.2 控制和颜色 169

6.2.1 系统颜色 169

6.2.2 按钮颜色 170

6.2.3 WM__CTLCOLOR消息 171

6.3 静态类别 173

6.4 滚动杆类别 174

6.4.1 COLORS1程序 175

6.4.2 自动键盘接口 180

6.4.4 背景的着色 181

6.4.3 窗口子分类 181

6.4.5 滚动杆的着色 182

6.4.7 COLORS1作为图标 183

6.5 编辑类别 183

6.4.6 处理多个实例 183

6.5.1 编辑类别型式 186

6.5.2 编辑控制通知码 187

6.5.3 编辑控制的使用 187

6.5.4 发给编辑控制的消息 188

6.6 列表框类别 188

6.6.1 列表框型式 189

6.6.2 在列表框中放入字符串 190

6.6.3 表项的选择和提取 191

6.6.4 接收来自列表框的消息 192

6.6.5 一个简单的列表框应用程序 193

6.6.6 文件列表 196

6.6.7 Windows用的head程序 197

6.6.8 2KB耗费的空间 201

第三部分 使用资源 202

第七章 内存管理 202

7.1 Intel型式:分段内存 203

7.2 Windows的内存组织 204

7.2.1 固定的和可移动的段 205

7.2.2 可废弃的内存 205

7.2.3 全局内存布局 206

7.2.4 局部内存 207

7.3 代码段和数据段 208

7.3.1 内存模型:小、中、紧凑、大和超大 208

7.3.2 多个代码段 209

7.3.3 紧凑模型和大模型怎么样? 210

7.3.4 避免内存移动问题 211

7.3.5 程序段的属性 212

7.4 Windows怎样移动和重新装入程序段 213

7.4.1 对far函数的特殊处理 214

7.4.2 Windows何时运行应用程序 216

7.4.3 MakeprocInstance的功能 218

7.4.4 关于动态库的差别 218

7.4.5 栈的查看 219

7.4.6 扩展内存 220

7.4.7 保护模式 221

7.5 在应用程序内分配内存 221

7.5.1 锁定内存块 222

7.5.2 一个生动的例子 222

7.5.3 全局内存函数 223

7.5.4 另外几个全局内存函数 225

7.5.5 使用可废弃的全局内存 226

7.5.6 超大型全局内存块 227

7.5.7 分配局部内存 229

7.5.8 另外几个局部内存函数 230

7.5.9 锁定你自己的数据段 231

7.5.10 内存分配的捷径 232

7.5.11 使用C语言的内存分配函数 233

7.5.12 在保护模式下运行应用程序 233

第八章 图标、光标、位图和字符串 234

8.1 编译资源 234

8.2 图标和光标 236

8.2.1 SDKPAINT工具 239

8.2.2 获得一个图标的句柄 241

8.2.3 在应用程序中使用图标 242

8.2.4 使用另外的光标 243

8.3 资源和内存 244

8.3.1 位图:以象素表示的图 244

8.3.2 使用位图和刷子 245

8.4 字符串 248

8.4.1 使用字符串资源 249

8.4.2 在MessageBox中使用字符串 249

8.4.3 字符串和内存空间 250

8.5 用户定义的资源 251

第九章 菜单和加速键 259

9.1 菜单 259

9.1.1 菜单结构 259

9.1.2 菜单样板 260

9.1.3 在应用程序中引用菜单 263

9.1.4 菜单和消息 264

9.1.5 一个示例程序 266

9.1.6 菜单的设计规则 271

9.1.7 一种较难的定义菜单方法 271

9.1.8 第三种定义菜单的方法 273

9.1.9 浮动的弹出式菜单 273

9.1.10 使用系统菜单 278

9.1.11 修改菜单 281

9.1.12 其它的菜单命令 281

9.1.13 一种非正统的建立菜单方法 282

9.2 在菜单中使用位图 286

9.2.1 两种创建菜单位图的方法 294

9.2.2 内存设备上下文 294

9.2.3 创建含有正文的位图 295

9.2.4 按比例扩缩位图 296

9.2.5 将菜单放在一起 297

9.2.6 增加键盘接口 298

9.3.2 加速键的分配规则 299

9.3.1 为什么要使用键盘加速键 299

9.3 键盘加速键 299

9.3.3 加速键表 300

9.3.4 装入加速键表 302

9.3.5 翻译加速键消息 302

9.3.6 接收加速键消息 303

9.3.7 使用菜单和加速键的POPPAD程序 304

9.3.8 能使菜单项 309

9.3.9 处理菜单选项 310

第十章 对话框 312

10.1 模式对话框 312

10.1.1 建立一个“About”对话框 312

10.1.2 对话框样板 316

10.1.3 对话框过程 317

10.1.5 调用对话框 319

10.1.4 输出对话框过程 319

10.1.6 再谈对话框型式 320

10.1.7 再谈定义控制 321

10.1.8 较复杂的对话框 323

10.1.9 处理对话框控制 328

10.1.10 OK和Cancel按钮 330

10.1.11 制表停止位置和组项 331

10.1.12 在对话框上绘画 333

10.1.13 与对话框一起使用其它函数 334

10.1.14 定义你自己的控制 334

10.2 消息框 340

10.2.1 断言消息框 341

10.2.2 弹出式信息 342

10.3 处理文件:重返POPPAD程序 343

10.3.1 OpenFile函数的调用 343

10.3.2 文件I/O的两种方法 345

10.3.3 用作打开和保存的对话框 347

10.3.4 DlgDirList和DlgDirSelect函数 353

10.3.5 获取有效的文件名 354

10.3.6 POPPAD程序的新版本 355

10.4 无模式的对话框 365

10.4.1 模式对话框与无模式对话框之间的区别 366

10.4.2 新的COLORS程序 368

10.4.3 HEXCALC:窗口还是对话框? 373

10.4.4 创造性地使用控制ID 378

10.5 使用DIALOG实用程序 379

第四部分 图形设备接口 382

第十一章 GDI引论 382

11.1 GDI的基本原理 382

11.2.1 获取设备上下文的句柄 383

11.2 设备上下文 383

11.2.2 获取设备上下文信息 385

11.2.3 DEVCAPS l程序 386

11.2.4 设备的尺寸 396

11.2.5 求出颜色 397

11.2.6 设备上下文属性 397

11.2.7 保存设备上下文 398

11.3 映射方式 400

11.3.1 设备坐标和逻辑坐标 401

11.3.2 设备坐标系 402

11.3.3 视窗和窗口 402

11.3.4 对MM—TEXT的处理 403

11.3.5 “公制”映射方式 406

11.3.6 “用户可改的”映射方式 409

11.3.7 WHATSIZE程序 414

12.2 画线 418

12.1 画点 418

第十二章 绘制图形 418

12.2.1 使用备用笔 420

12.2.2 笔的建立、选择和删除 421

12.2.3 避免设备有关性 424

12.2.4 填充空隙 424

12.2.5 绘制方式 424

12.2.6 ROP2LOOK程序 426

12.2.7 ROP2和彩色 429

12.3 绘制填充区域 430

12.3.1 边界框 431

12.3.2 ARCS程序 435

12.3.3 Polygon函数和多边形填充方式 441

12.3.4 用刷子对内部着色 442

12.3.5 刷子与位图 443

12.3.6 建立和使用位图刷子 445

12.3.7 刷子对齐 447

12.4 矩形、区域和裁剪 450

12.4.1 处理矩形 450

12.4.2 区域的建立和涂色 451

12.4.3 用矩形和区域进行裁剪 452

12.4.4 CLOVER程序 453

12.5 一些杂类GDI函数 457

12.6 无休止绘图程序 462

第十三章 位整块传送和元文件 467

13.1 旧的位图格式 468

13.1.1 在程序中建立位图 468

13.1.2 单色位图格式 469

13.1.3 彩色位图格式 470

13.2.1 DIB文件 471

13.2 与设备无关的位图(DIB) 471

13.1.4 位图的大小 471

13.2.2 建立DIB 473

13.3 内存设备上下文 474

13.4 非凡的BLT 475

13.4.1 PatBlt函数 475

13.4.2 Blt坐标 477

13.4.3 用BitBlt传送字块 478

13.4.4 DrawBitmap函数 479

13.4.5 使用不同的ROP代码 480

13.4.6 用内存设备上下文做更有趣的事 482

13.4.7 颜色转换 485

13.4.8 映射方式的转换 486

13.4.9 用StretchBlt扩缩位图 486

13.4.10 动画 487

13.5 元文件 491

13.5.1 内存元文件的简单用法 491

13.5.2 存放元文件在磁盘上 493

13.5.3 使用预先存在的元文件 495

13.5.4 把元文件用作资源 497

13.5.5 查看元文件 500

13.5.6 元文件能做与不能做的事 501

第十四章 正文和字体 503

14.1 简单的正文输出 503

14.1.1 正文绘制函数 503

14.1.2 正文用的设备上下文属性 504

14.1.3 使用备用字体 505

14.1.4 使字符串变灰 506

14.1.5 GrayString的简单用法 507

14.2.1 字体的类型 508

14.2 有关字体的背景知识 508

14.1.6 不用GrayString的灰色串 508

14.2.2 话谈钻字Ⅰ:族和字样 510

14.2.3 字体资源文件 511

14.2.4 话谈钻字Ⅱ:点 512

14.2.5 为什么使用逻辑英寸? 512

14.2.6 话谈钻字Ⅲ:行间空白和间距 513

14.2.7 “逻辑Twips”映射方式 514

14.3 建立、选择和删除逻辑字体 515

14.3.1 逻辑字体结构 524

14.3.2 字体映射算法 527

14.3.3 有关字体的查询 527

14.4 枚举字体 529

14.5 格式化正文 539

14.5.1 单行正文对齐 540

14.5.2 正文段落的调整 540

第十五章 使用打印机 550

15.1 打印、假脱机和换码 550

15.2.1 获得CreateDC函数 554

15.2 打印机设备上下文 554

15.2.2 修订的DEVCAPS程序 556

15.2.3 DeviceMode调用 562

15.2.4 检查BitBlt性能 564

15.3 打印的基本原理 564

15.3.1 Escape函数 564

15.3.2 FORMFEED程序 565

15.4 打印图形和正文 567

15.4.1 梗概打印 570

15.4.2 设置异常中止过程 572

15.4.3 Windows如何使用AbortProc 574

15.4.4 异常中止过程的实现 574

15.4.5 加入打印对话框 577

15.4.6 把打印加入POPPAD程序 582

15.4.7 处理错误码 587

15.5 分带输出技术 588

15.5.1 开始谈带区 589

15.5.2 异常中止过程的不同用法 591

15.6 打印机和字体 596

第五部分 数据交换和链接 598

第十六章 书写板 598

16.1 书写板的简单用法 598

16.1.1 标准的书写板数据格式 598

16.1.2 传送正文给书写板 599

16.1.3 从书写板中获得正文 600

16.1.6 以位图格式使用书写板 602

16.1.7 修订的BLOWUP程序 602

16.1.5 打开和关闭书写板 602

16.1.8 元文件和元文件图 608

16.2 书写板的其它用法 612

16.2.1 使用多个数据项 612

16.2.2 延迟再现技术 613

16.2.3 私用数据格式 615

16.3 编写书写板观察器 617

16.3.1 书写板观察器链 617

16.3.2 书写板观察器函数和消息 617

16.3.3 一个简单的书写板观察器 620

第十七章 动态数据交换(DDE) 624

17.1 基本概念 624

17.1.1 应用程序、题目和项 624

17.1.2 会话的类型 625

17.1.3 字符串和原子 629

17.2 一个DDE服务器程序 630

17.2.1 DDEPOP程序 642

17.2.2 WM__DDE__NITIATE消息 642

17.2.3 ServerProc窗口过程 643

17.2.4 WM__DDE__REQUEST消息 643

17.2.5 DDEPOP的PostDataMessage函数 644

17.2.6 WM__DDE__ADVISE消息 645

17.2.7 项的更新 647

17.2.8 WM__DDE__UNADVISE消息 647

17.2.9 WM__DDE__TERMINATE消息 647

17.3 一个DDE用户程序 648

17.3.1 初始化DDE会话 655

17.3.2 WM__DDE__DATA消息 656

17.3.3 WM__DDE__TERMINATE消息 656

17.4 出错时 657

18.1 MDI的要素 658

第十八章 多种文档接口(MDI) 658

18.2 Windows 3和MDI 659

18.3 样本程序 660

18.3.1 三张菜单 671

18.3.2 程序初始化 671

18.4 创建子窗口 672

18.5 其它框架窗口消息的处理 673

18.6 子文档窗口 674

18.7 窗口过程的威力 675

第十九章 动态链接库 676

19.1 库的工作原理 676

19.1.1 库一词有很多含义 677

19.1.2 用EXEHDR来检测库 677

19.2 STRPROG和STRLIB 678

19.2.1 STRLIB库 679

19.2.3 库的入口点 682

19.2.2 Make文件的差别 682

19.2.4 STRLIB函数 684

19.2.5 库的模块定义文件 684

19.2.6 STRPROG程序 685

19.2.7 运行STRPROG 690

19.2.8 远程函数序言 691

19.2.9 反调用函数的用法 692

19.3 DS不等于SS的问题 692

19.4 库的其它限制 696

19.5 指定链接的不同方法 697

19.6 使用输入函数库 698

19.7 截获Windows函数调用 700

19.8 不带输入库的动态链接 701

19.9 含资源的库 702