PowerBuilder Win32 API程序设计(高级卷)

PowerBuilder Win32 API程序设计(高级卷)
作 者: 马贵安
出版社: 清华大学出版社
丛编项: PowerBuilder Win32 API技术丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Powerbuilder
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  马贵安,高级工程师,现供职于黄河水利水电开发总公司。长期从事MIS及GIS系统在企业的应用和推广工作。主持和参与开发了多个应用于水利、文物保护、水环境保护等领域的信息系统。对Win32API技术及其在PowerBuilder中的应用有很深的造诣。李明武,大学讲师,现供职于中国人民银行郑州培训学院信息部。长期从事计算机基础教学和网络颁布式数据应用系统的研发。精通包括PowerBuilder在内的多种开发语言。曾经参与《金融计算机应用》、《计算机操作基础教程》等已知的编写。牛永生,高级工程师,现供职于黄河流域水资源保护局。长期以来致力于PowerBuilder与Sybase数据库及地理信息系统在水资源保护领域应用系统的研发。其主持开发的水环境监测信息系统曾获省、部级奖。

内容简介

本书特点:·深层次诠释Win32API技术的内涵·全方位扩充和丰富PowerBuilder的功能·快速提升用户的PowerBuilder应用开发水准·适用于PowerBuilder7.0及以上版本·配书光盘提供了本书范例的全部源代码丛书特色:经典:全球第一套系统介绍PowerBuilder中Win32APl技术应用方案的书籍实用:面向一线程序员,适用于初、中、高各个级别的PowerBuilder程序员参考系统:全面涵盖Win32API开发技术,极大地扩充和丰富PowerBuilder应用功能通过Windows应用程序接口API,可以丰富和扩充PowerBuilder功能。本套丛书是目前国内外第一套系统介绍PowerBuilder中Win32API程序设计的书籍,丛书以丰富的实例,系统、全面、深入介绍了在PowerBuilder中调用Windows系统API函数的方法,提供了大量应用系统开发中迫切需要,而用PowerBuilder无法实现的功能。该书为《PowerBuilderWin32API程序设计宝典――高级卷》,全书由六篇十九章组成,内容包括Windows系统的消息机制、通过消息增强控件功能的方法及Windows通用控件的调用;Win32API打印控制、位图操作、逻辑字体与文本、网络与Internet、FTP应用开发、Winsock网络应用开发等。全书以一定的广度和深度阐述了Win32API程序设计中不易掌握,而且相关资料比较匮乏的内容。书中提供的有关消息、打印控制、位图操作、网络访问、FTP文件传输、Winsock等Win32API高级应用的解决方案,将大大扩充PowerBuilder的许多功能。本书可供具有一定PowerBuilder程序设计基础,而需要在PowerBuilder中进一步应用Win32API高级功能的程序员使用,也可供VisualBasic或Delphi等其它开发语言的程序员参考。

图书目录

第一篇 Windows系统消息篇

第1章 Windows系统的消息机制 3

1.1 Windows 的工作机制 3

1.1.1 Windows 的工作方式――窗口. 事件和消息 3

1.1.2 句柄的概念 4

1.1.3 消息的概念 4

1.1.4 消息的类型 5

1.1.5 用于发送消息的API函数 7

1.2 事件与消息 9

1.2.1 从消息到事件 9

1.2.2 PB事件对消息的封装 11

1.3 消息应用的几个实例 20

1.3.1 通用消息设置对话框的超时关闭 20

1.3.2 通过消息设置窗口标题和定义窗口热键 22

1.3.3 使用消息控制窗口系统菜单 25

1.4 通过消息将应用图标加入到系统托盘中 27

1.4.1 相关函数和结构 27

1.4.2 载入图标的三种途径 29

1.4.3 创建实现相关功能的用户对象 32

1.4.4 应用实例 41

第2章 通过消息增强控件功能 47

2.1 进度条控件消息 47

2.1.1 进度条控件消息 47

2.1.2 通过消息改变进度条前景色和背景色 48

2.2 组合框控件消息 49

2.2.1 组合框控件消息 49

2.2.2 使用消息为组合框添加项目内容 51

2.2.3 组合框中项目内容的快速查找 52

2.2.4 使用消息为组合框添加文件列表 53

2.2.5 通过消息控制组合框的拉下或收起 54

2.3 列表框控件消息解析 56

2.3.1 列表框消息 56

2.3.2 随鼠标移动自动选择列表框中项 58

2.3.3 在列表框中快速查找开头含有某字符串的项 59

2.3.4 为含有超长文本的列表框增加提示功能 60

2.4 ListView控件消息 62

2.4.1 ListView控件消息 62

2.4.2 让ListView控件显示扁平滚动条 63

2.4.3 自动调整ListView控件的列宽 63

2.4.4 为ListView控件列增加Tooltips功能 65

2.5 TreeView控件消息 66

2.5.1 TreeView控件消息 66

2.5.2 设置TreeView控件节点文本的最大长度 68

2.5.3 仅允许TreeView控件节点文本中输入数字 69

第3章 Windows通用控件的调用 70

3.1 Windows通用控件概述 70

3.1.1 通用控件窗口类 70

3.1.2 判断通用控件动态库的版本 72

3.1.3 动态创建控件 76

3.2 月历控件调用 79

3.2.1 月历控件概述 79

3.2.2 月历控件的样式 80

3.2.3 月历控件的消息 81

3.2.4 创建应用于数据窗口的月历控件用户对象 86

3.2.5 在数据窗口中调用月历控件对象 122

3.3 日期与时间检出器控件的调用 127

3.3.1 日期与时间检出器控件概述 127

3.3.2 日期与时间检出控件的消息 129

3.3.3 创建日期与时间检出器控件用户对象 132

3.3.4 日期与时间检出器控件用户对象的调用 145

3.4 工具提示(ToolTip)控件 149

3.4.1 工具提示(ToolTip)控件概述 149

3.4.2 工具提示(ToolTip)控件的消息 150

3.4.3 创建工具提示(ToolTip)控件用户对象 157

3.4.4 窗口中调用工具提示控件用户对象 167

3.4.5 数据窗口中调用工具提示控件用户对象 169

3.5 动画控件的调用 171

3.5.1 动画控件概述 171

3.5.2 动画控件的消息 173

3.5.3 创建动画控件用户对象 174

3.5.4 调用动画控件用户对象 177

第4章 键盘消息机制及控制 179

4.1 系统键盘控制概述 179

4.1.1 键盘响应的消息机制 179

4.1.2 虚拟键定义 180

4.1.3 热键支持 183

4.2 键盘控制应用实例 183

4.2.1 设置ScrollLock. NumLock和CapsLock键的状态 183

4.2.2 数据窗口中用箭头键替代Tab键的功能 190

4.2.3 数据窗口中用Enter键替代Tab键的功能 192

4.2.4 屏幕及活动窗口图像捕捉功能的实现 194

4.2.5 通过Keybd_event函数最小化所有窗口 195

4.3 为PB应用注册热键 196

4.3.1 相关API函数 197

4.3.2 注册热键的方法 198

4.4 鼠标控制 201

4.4.1 将鼠标活动限定在某个范围内 201

4.4.2 追踪鼠标移动 204

4.4.3 使用动画鼠标指针 206

4.5 键盘输入法 208

4.5.1 键盘输入法相关API函数 208

4.5.2 获取系统键盘输入法列表 210

4.5.3 输入法的自动切换 211

第二篇 打印及打印机控制篇

第5章 Win32打印控制API基础 217

5.1 Win32打印机API概述 217

5.2 打印及打印机控制API函数 219

5.2.1 打开打印机对象函数 219

5.2.2 获取或设置打印机信息函数 220

5.2.3 获取或设置缺省打印机函数 222

5.2.4 枚举打印机及打印作业信息函数 223

5.2.5 获取打印设备属性函数 225

5.3 打印及打印机相关数据结构 228

5.3.1 DEVMODE结构 228

5.3.2 PRINTER_DEFAULTS结构 236

5.3.3 PRINTER_INFO_1结构 237

5.3.4 PRINTER_INFO_2结构 238

第6章 打印及打印机控制 240

6.1 系统缺省打印机的获取和设置 240

6.1.1 Windows 2000缺省打印机的获取和设置 240

6.1.2 Windows 95/98/Me缺省打印机的获取和设置 243

6.1.3 Windows NT 4.0默认打印机的获取和设置 246

6.2 获取系统安装的打印机列表 250

6.2.1 获取系统安装的打印机列表 250

6.2.2 获取指定打印机打印作业数目 253

6.3 获取打印设备的各项性能 255

6.3.1 获取打印机支持的纸型 255

6.3.2 获取打印机支持的纸盒 261

6.3.3 获取打印机支持的打印精度 264

第7章 定制仿Word打印. Excel页面设置对话框 267

7.1 打印机控制用户对象的建立 267

7.2 定制Word风格打印设置对话框 289

7.2.1 Word打印对话框的特点 289

7.2.2 Word风格打印对话框的建立 290

7.3 定制Excel风格的页面设置对话框 296

7.3.1 Excel风格的页面设置对话框的特点 296

7.3.2 定制Excel风格的页面设置对话框 297

7.4 综合示例 304

7.4.1 示例窗口 304

7.4.2 打印预览窗口 305

第三篇 位图操作篇

第8章 位图操作基础 311

8.1 设备场景 311

8.1.1 什么是设备场景? 311

8.1.2 设备场景的类型 313

8.1.3 获取和释放窗口的设备场景句柄 315

8.1.4 创建和删除设备场景 316

8.1.5 体验设备场景 318

8.2 位图. 画笔和刷子的基本概念 322

8.2.1 位图 322

8.2.2 画笔 324

8.2.3 刷子 328

8.2.4 自定义图案刷子 332

8.3 常用位图对象API函数 334

8.3.1 位图对象创建函数 334

8.3.2 位图对象绘制函数 336

8.3.3 对象操作函数 344

8.3.4 载入位图文件函数 346

8.3.5 休眠函数 348

8.4 光栅运算 348

8.4.1 什么是光栅运算? 348

8.4.2 Windows预定义光栅运算码 350

8.4.3 ROP效果演示 350

第9章 位图操作应用实例 357

9.1 图像透明显示效果的实现 357

9.1.1 通过光栅运算实现图像透明显示效果 357

9.1.2 图像透明显示效果的另一种解决方案 368

9.2 动画效果的实现 373

9.2.1 动画效果的实现基本思路 373

9.2.2 应用示例 375

9.3 图像特技显示效果的实现 378

9.3.1 各种图像特技显示效果的实现原理 378

9.3.2 特技显示效果的实现示例 382

9.4 图像特技效果在窗口中的应用 396

9.4.1 为窗口增加背景图案 396

9.4.2 程序退出时窗口变暗效果的实现 402

第四篇 逻辑字体与文本篇

第10章 逻辑字体与文本 411

10.1 字体概述 411

10.1.1 字体及其分类 411

10.1.2 字体家族 413

10.1.3 字符集 414

10.1.4 字体要素 415

10.2 系统字体枚举. 添加和删除 416

10.2.1 获取系统安装的字体列表 416

10.2.2 为系统注册新字体 421

10.2.3 注册字体实例――条形码的使用 428

10.3 逻辑字体对象的建立 429

10.3.1 创建逻辑字体 429

10.3.2 通过CreateFont函数创建逻辑字体 434

10.4 文本输出及显示特效的实现 436

10.4.1 文本输出相关API函数 436

10.4.2 文本旋转效果的实现 438

10.4.3 文本透明效果的实现 440

10.4.4 文本多彩效果的实现 441

10.5 通过文本函数增强PB进度条控件功能 443

10.5.1 改进的PB进度条控件 443

10.5.2 定制进度条控件 447

第五篇 网络与Internet篇

第11章 网络访问 455

11.1 网络连接对话框的调用 455

11.1.1 网络连接对话框函数 455

11.1.2 网络连接对话框函数 458

11.2 枚举和浏览网络资源 465

11.2.1 枚举网络资源 465

11.2.2 通过文件夹浏览通用对话框浏览网络资源 471

11.3 添加. 取消网络连接 475

11.3.1 相关API函数 475

11.3.2 连接网络资源示例 478

11.4 网络驱动器UNC路径名及映射 480

11.4.1 获取网络驱动器的UNC路径名 480

11.4.2 映射网络驱动器 482

11.5 网络时间同步 487

11.5.1 获取服务器的时间信息 487

11.5.2 与网络服务器时间同步 498

11.6 获取用户的网络登录名 501

11.7 判断网络的连接状态 503

11.8 检测网络IP地址能否联通 505

11.8.1 Ping命令与网际消息控制协议 (ICMP) 505

11.8.2 通过API函数发送ICMP回应请求 506

11.9 获取主机的MAC物理地址 512

11.9.1 ARP协议及其工作原理 513

11.9.2 通过IP地址获取本地或远程主机的MAC地址 514

第12章 Internet Explore浏览器 518

12.1 获取浏览器信息 518

12.1.1 取得默认浏览器的路径和文件名 518

12.1.2 取得IE浏览器的版本信息 521

12.2 从应用中打开浏览器 527

12.2.1 使用API函数打开浏览器 528

12.2.2 使用PB动态库中函数打开浏览器 529

12.3 巧用浏览器功能 529

12.3.1 文件下载 529

12.3.2 使用IE自动完成功能 532

12.3.3 操作IE的收藏夹 536

12.4 为IE工具栏添加自定义按钮 542

12.4.1 注册表中IE工具栏自定义按钮的相关信息 542

12.4.2 添加自定义按钮应用示例 544

12.5 在PB中定制浏览器 547

12.5.1 IE浏览器架构 547

12.5.2 WebBrowser控件的属性. 方法. 事件和OLE命令 548

12.5.3 使用WebBrowser控件定制浏览器 552

第13章 远程访问服务RAS 560

13.1 远程访问服务RAS 概述 5604

13.1.1 远程访问服务 560

13.1.2 远程访问服务API接口 561

13.1.3 Windows的RAS电话簿 563

13.1.4 RAS错误信息 564

13.2 调用RAS通用对话框 565

13.2.1 调用主拨号网络对话框 565

13.2.2 调用正在拨号对话框 568

13.2.3 调用拨号网络监视器对话框 570

13.2.4 Windows 2000/XP中调用连接属性对话框 572

13.2.5 Windows 95/98中调用连接属性对话框 575

13.2.6 调用创建新连接对话框 577

13.3 获取系统拨号连接列表 579

13.3.1 获取系统所有拨号连接列表 579

13.3.2 获取当前所有活动连接列表 582

13.4 建立与远程网络的连接 585

13.4.1 建立连接 585

13.4.2 获取连接状态 588

13.4.3 终止远程访问连接 591

13.4.4 建立PB远程访问用户对象 592

第14章 WinInet拨号连接控制 603

14.1 WinInet拨号连接API函数概述 603

14.2 启用拨号连接 605

14.2.1 启动IE默认拨号连接 605

14.2.2 启动指定拨号连接 608

14.3 确定网络连接状态 612

14.3.1 获取当前网络的连接状态 612

14.3.2 测试到Internet的网络连接条件 617

第15章 WinInet基础 620

15.1 Internet 协议 620

15.1.1 TCP/IP协议 620

15.1.2 HTTP协议 624

15.1.3 OSI模型高层接口――WinInet 623

15.2 WinInet接口函数 625

15.2.1 WinInet接口函数 625

15.2.2 WinInet接口函数句柄 627

15.2.3 WinInet句柄层次关系 628

15.3 WinInet版本及错误信息 631

15.3.1 确定WinInet版本的重要性 631

15.3.2 获取WinInet错误信息 635

第16章 FTP文件传输 643

16.1 FTP概述 643

16.1.1 FTP协议和工作原理 643

16.1.2 匿名FTP服务 644

16.2 建立Internet会话 645

16.2.1 FTP函数的调用层次 645

16.2.2 打开Internet会话句柄 647

16.2.3 建立Internet会话 651

16.3 FTP服务器目录操作 654

16.3.1 在FTP服务器上获取和切换工作目录 654

16.3.2 在FTP服务器上创建和移除目录 655

16.3.3 列出FTP服务器指定目录下的子目录或文件 659

16.4 FTP服务器文件操作 667

16.4.1 从FTP服务器下载文件 667

16.4.2 获取FTP服务器端文件的大小 670

16.4.3 向FTP服务器上传文件 674

16.4.4 删除FTP服务器端文件 678

16.4.5 重新命名FTP服务器端文件 681

16.5 通过FTPCommand函数发送FTP命令 684

16.5.1 FTP控制连接和数据连接 684

16.5.2 常用FTP命令 685

16.5.3 使用FTPCommand函数发送FTP命令 689

16.6 构筑FTP客户端应用系统 694

16.6.1 创建PB FTP用户对象 694

16.6.2 创建客户端文件和目录操作用户对象 712

16.6.3 构建FTP客户端应用系统 720

第六篇 Winsock网络应用开发篇

第17章 Winsock网络应用基础 749

17.1 Windows Sockets概述 749

17.1.1 Windows Sockets基本概念 749

17.1.2 Winsock在OSI模型中的地位 750

17.1.3 Winsock传输数据类型 752

17.1.4 Winsock的接口函数 753

17.1.5 Winsock工作流程 756

17.2 启动Winsock服务 758

17.2.1 Winsock服务启动和终止 758

17.2.2 处理Winsock错误 763

17.3 主机名称与IP地址 768

17.3.1 IP地址概述 768

17.3.2 IP地址IPv4与Ulong格式的相互转换 770

17.3.3 获取本地主机名称 772

17.3.4 获取主机IP地址 773

17.3.5 网络顺序和主机顺序数值位相互转换 778

17.4 通过Socket连接到远程主机 786

17.4.1 创建或关闭Socket 786

17.4.2 通过Socket连接到远程主机 787

17.4.3 与远程主机建立连接示例 790

17.4.4 绑定(Binding)Socket 794

17.4.5 接收数据 795

17.4.6 发送数据 799

17.4.7 侦听和接受连接请求 805

第18章 Winsock网络应用开发 808

18.1 创建Winsock用户对象 808

18.1.1 声明用户对象结构. 外部函数和常量 808

18.1.2 用户对象的事件处理程序 812

18.1.3 创建用户对象函数 814

18.2 通过Winsock实现FTP功能 830

18.2.1 通过Winsock实现FTP功能的基本思路 830

18.2.2 创建基于Winsock 的FTP用户对象 832

18.2.3 创建Winsock FTP应用 855

18.3 通过Winsock发送电子邮件 885

18.3.1 发送邮件的基本思路 886

18.3.2 创建基于Winsock 的SMTP用户对象 887

18.3.3 创建Winsock SMTP应用 897

18.4 使用Winsock API实现点对点通信 900

18.4.1 客户端程序 900

18.4.2 服务器端程序 904

第19章 Winsock控件及网络应用开发 908

19.1 Winsock控件的属性. 事件和方法 908

19.1.1 Winsock控件的属性 908

19.1.2 Winsock控件的方法 909

19.1.3 Winsock控件的事件 910

19.2 使用Winsock控件创建简单的网络应用 915

19.2.1 创建简单的TCP网络应用 915

19.2.2 创建简单的UDP网络应用 920

19.3 使用Winsock控件实现与远程时间服务器时间同步 923

19.3.1 与时间服务器时间同步的基本原理 924

19.3.2 与时间服务器时间同步应用示例 925

附录A 函数索引 929

附录B 结构索引 932

附录C 示例索引 935