当前位置:首页 > 工业技术
Windows95程序设计
Windows95程序设计

Windows95程序设计PDF电子书下载

工业技术

  • 电子书积分:23 积分如何计算积分?
  • 作 者:(美)(C.佩措尔德)Charles Petzold著;郑全战,岚山译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1997
  • ISBN:730202619X
  • 页数:875 页
图书介绍:
《Windows95程序设计》目录

第一部分 开始 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

相关图书
作者其它书籍
返回顶部