《Windows95程序设计》求取 ⇩

第一部分 开始3

第1章 README.TXT3

1.1 对程序员的挑战3

目录3

1.2 基本原则4

1.3 Windows简史6

1.4 本书简史7

1.5 让我们开始9

第2章 Hello,Windows 9510

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 投入Windows13

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与BLTS144

4.9.1 色彩和位图145

4.9.2 设备无关位图(DIB)145

4.9.3 DIB文件146

4.9.4 紧缩的DIB存储格式147

4.9.5 显示DIB148

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 强大的BLT154

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 菜单与加速键应用程序POPPAD418

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 创造性地使用控制ID472

11.4 通用对话框472

11.4.1 增强POPPAD473

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/O599

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/O611

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如何使用AbortProc677

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和MDI772

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 一个简单的DLL792

19.3 DLL中的共享内存796

19.3.1 STRLIB库797

19.3.2 库入口/出口点800

19.3.3 STRPROG程序801

19.3.4 运行STRPROG806

19.3.5 在STRPROG实例之间共享数据807

19.4 对库的一些限制807

19.5 不用输入的动态链接808

19.6 纯资源库809

第20章 何谓OLE814

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.DLL833

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

1997《Windows95程序设计》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由(美)(C.佩措尔德)Charles Petzold著;郑全 1997 北京:清华大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

COBOL程序设计(1994 PDF版)
COBOL程序设计
1994 上海:华东理工大学出版社
aspnet程序设计( PDF版)
aspnet程序设计
AppleⅡLOGO程序设计(1987年03月第1版 PDF版)
AppleⅡLOGO程序设计
1987年03月第1版
PASCAL程序设计(1996年11月第1版 PDF版)
PASCAL程序设计
1996年11月第1版 东南大学出版社
Visual c++编程技巧与范例( PDF版)
Visual c++编程技巧与范例
C++程序设计(1999 PDF版)
C++程序设计
1999 青岛:青岛出版社
Ada程序设计(1989 PDF版)
Ada程序设计
1989 北京:人民邮电出版社
程序设计  程序员级(1999 PDF版)
程序设计 程序员级
1999 北京:清华大学出版社
LOGO程序设计(1986 PDF版)
LOGO程序设计
1986 上海:上海科学技术文献出版社
FORTRAN程序设计(1980 PDF版)
FORTRAN程序设计
1980 北京:人民邮电出版社
实用C语言编程技巧与应用范例(1993 PDF版)
实用C语言编程技巧与应用范例
1993 北京:海洋出版社
程序设计(1985 PDF版)
程序设计
1985 上海:上海交通大学出版社
Windows95程序设计(1997 PDF版)
Windows95程序设计
1997 北京:清华大学出版社
QBASIC程序设计(1998 PDF版)
QBASIC程序设计
1998 南京:南京大学出版社
FORTRAN程序设计(1987 PDF版)
FORTRAN程序设计
1987 北京:电子工业出版社