圖書簡介
本書為“PowerBuilderWin32API技術叢書”之《PowerBuilder Win32API程式設計(高級篇)》,全書分6篇共19章,內容包括:Windows系統的訊息機制,通過訊息增強控制項功能的方法,Windows通用控制項的調用、Win32API列印控制、點陣圖操作、邏輯字型與文本、網路與Internet、FTP套用開發、Winsock網路套用開發等。全書以一定的廣度和深度闡述了Win32API程式設計中不易掌握,而且相關資料比較匱乏的內容。書中提供了有關訊息、列印控制、點陣圖操作、網路訪問、FTP檔案傳輸、Winsock等Win32API高級套用的解決方案,將大大擴充PowerBuilder的許多功能。
目錄
第1篇Windows系統訊息篇
第1章Windows系統的訊息機制 2
1.1Windows的工作機制 2
1.1.1Windows的工作方式——視窗、事件和訊息 2
1.1.2句柄的概念 2
1.1.3訊息的概念 3
1.1.4訊息的類型 4
1.1.5用於傳送訊息的API函式 6
1.2事件與訊息 8
1.2.1從訊息到事件 8
1.2.2PB事件對訊息的封裝 9
1.3訊息套用的幾個實例 17
1.3.1通用訊息設定對話框的逾時關閉 17
1.3.2通過訊息設定視窗標題和定義視窗熱鍵 19
1.3.3使用訊息控制視窗系統選單 21
1.4通過訊息將套用圖示加入到系統托盤中 23
1.4.1相關函式和結構 23
1.4.2載入圖示的3種途徑 25
1.4.3創建實現相關功能的用戶對象 28
1.4.4套用實例 35
第2章通過訊息增強控制項功能 40
2.1進度條控制項訊息 40
2.1.1進度條控制項訊息概述 40
2.1.2通過訊息改變進度條前景色和背景色 41
2.2組合框控制項訊息 42
2.2.1組合框控制項訊息概述 42
2.2.2使用訊息為組合框添加項目內容 44
2.2.3組合框中項目內容的快速查找 45
2.2.4使用訊息為組合框添加檔案列表 45
2.2.5通過訊息控制組合框的拉下或收起 46
2.3列表框控制項訊息解析 47
2.3.1列表框訊息 47
2.3.2隨滑鼠移動自動選擇列表框中項 49
2.3.3在列表框中快速查找開頭含有某字元串的項 50
2.3.4為含有超長文本的列表框增加提示功能 51
2.4ListView控制項訊息 53
2.4.1ListView控制項訊息概述 53
2.4.2讓ListView控制項顯示扁平滾動條 53
2.4.3自動調整ListView控制項的列寬 54
2.4.4為ListView控制項列增加Tooltips功能 55
2.5TreeView控制項訊息 56
2.5.1TreeView控制項訊息概述 56
2.5.2設定TreeView控制項節點文本的最大長度 58
2.5.3僅允許TreeView控制項節點文本中輸入數字 58
第3章Windows通用控制項的調用 60
3.1Windows通用控制項概述 60
3.1.1通用控制項視窗類 60
3.1.2判斷通用控制項動態庫的版本 61
3.1.3動態創建控制項 65
3.2月曆控制項調用 68
3.2.1月曆控制項概述 68
3.2.2月曆控制項的樣式 68
3.2.3月曆控制項的訊息 70
3.2.4創建套用於數據視窗的月曆控制項用戶對象 75
3.2.5在數據視窗中調用月曆控制項對象 102
3.3日期與時間檢出器控制項的調用 106
3.3.1日期與時間檢出器控制項概述 106
3.3.2日期與時間檢出控制項的訊息 107
3.3.3創建日期與時間檢出器控制項用戶對象 110
3.3.4日期與時間檢出器控制項用戶對象的調用 121
3.4工具提示控制項 123
3.4.1工具提示控制項概述 123
3.4.2工具提示控制項的訊息 125
3.4.3創建工具提示控制項用戶對象 131
3.4.4視窗中調用工具提示控制項用戶對象 139
3.4.5數據視窗中調用工具提示控制項用戶對象 141
3.5動畫控制項的調用 142
3.5.1動畫控制項概述 142
3.5.2動畫控制項的訊息 143
3.5.3創建動畫控制項用戶對象 145
3.5.4調用動畫控制項用戶對象 147
第4章鍵盤訊息機制及控制 149
4.1系統鍵盤控制概述 149
4.1.1鍵盤回響的訊息機制 149
4.1.2虛擬鍵定義 150
4.1.3熱鍵支持 152
4.2鍵盤控制套用實例 153
4.2.1設定ScrollLock、NumLock和CapsLock鍵的狀態 153
4.2.2數據視窗中用箭頭鍵替代Tab鍵的功能 159
4.2.3數據視窗中用Enter鍵替代Tab鍵的功能 161
4.2.4螢幕及活動視窗圖像捕捉功能的實現 162
4.2.5通過Keybd_event函式最小化所有視窗 163
4.3為PB套用註冊熱鍵 164
4.3.1相關API函式 164
4.3.2註冊熱鍵的方法 165
4.4滑鼠控制 167
4.4.1將滑鼠活動限定在某個範圍內 168
4.4.2追蹤滑鼠移動 170
4.4.3使用動畫滑鼠指針 172
4.5鍵盤輸入法 174
4.5.1鍵盤輸入法相關API函式 174
4.5.2獲取系統鍵盤輸入法列表 175
4.5.3輸入法的自動切換 176
第2篇列印及印表機控制篇
第5章Win32列印控制API基礎 182
5.1Win32印表機API概述 182
5.2列印及印表機控制API函式 183
5.2.1打開印表機對象函式 183
5.2.2獲取或設定印表機信息函式 184
5.2.3獲取或設定默認印表機函式 186
5.2.4枚舉印表機及列印作業信息函式 187
5.2.5獲取列印設備屬性函式 189
5.3列印及印表機相關數據結構 191
5.3.1DEVMODE結構 191
5.3.2PRINTER_DEFAULTS結構 199
5.3.3PRINTER_INFO_1結構 199
5.3.4PRINTER_INFO_2結構 200
第6章列印及印表機控制 202
6.1系統默認印表機的獲取和設定 202
6.1.1Windows2000默認印表機的獲取和設定 202
6.1.2Windows95/98/Me默認印表機的獲取和設定 205
6.1.3WindowsNT4.0默認印表機的獲取和設定 206
6.2獲取系統安裝的印表機列表 210
6.2.1獲取系統安裝的印表機列表簡介 210
6.2.2獲取指定印表機列印作業數目 212
6.3獲取列印設備的各項性能 214
6.3.1獲取印表機支持的紙型 214
6.3.2獲取印表機支持的紙盒 219
6.3.3獲取印表機支持的列印精度 221
第7章定製仿Word列印、Excel頁面設定對話框 224
7.1印表機控制用戶對象的建立 224
7.2定製Word風格列印設定對話框 240
7.2.1Word列印對話框的特點 240
7.2.2Word風格列印對話框的建立 241
7.3定製Excel風格的頁面設定對話框 246
7.3.1Excel風格的頁面設定對話框的特點 246
7.3.2定製Excel風格的頁面設定對話框 247
7.4綜合示例 252
7.4.1示例視窗 252
7.4.2列印預覽視窗 253
第3篇點陣圖操作篇
第8章點陣圖操作基礎 258
8.1設備場景 258
8.1.1什麼是設備場景 258
8.1.2設備場景的類型 260
8.1.3獲取和釋放視窗的設備場景句柄 261
8.1.4創建和刪除設備場景 263
8.1.5體驗設備場景 264
8.2點陣圖、畫筆和刷子的基本概念 267
8.2.1點陣圖 267
8.2.2畫筆 269
8.2.3刷子 273
8.2.4自定義圖案刷子 276
8.3常用點陣圖對象API函式 278
8.3.1點陣圖對象創建函式 278
8.3.2點陣圖對象繪製函式 280
8.3.3對象操作函式 286
8.3.4載入點陣圖檔案函式 287
8.3.5休眠函式 289
8.4光柵運算 289
8.4.1什麼是光柵運算 289
8.4.2Windows預定義光柵運算碼 291
8.4.3ROP效果演示 291
第9章點陣圖操作套用實例 297
9.1圖像透明顯示效果的實現 297
9.1.1通過光柵運算實現圖像透明顯示效果 297
9.1.2圖像透明顯示效果的另一種解決方案 305
9.2動畫效果的實現 310
9.2.1動畫效果的實現基本思路 310
9.2.2套用示例 311
9.3圖像特技顯示效果的實現 314
9.3.1各種圖像特技顯示效果的實現原理 314
9.3.2特技顯示效果的實現示例 318
9.4圖像特技效果在視窗中的套用 328
9.4.1為視窗增加背景圖案 328
9.4.2程式退出時視窗變暗效果的實現 333
第4篇邏輯字型與文本篇
第10章邏輯字型與文本 340
10.1字型概述 340
10.1.1字型及其分類 340
10.1.2字型家族 341
10.1.3字元集 342
10.1.4字型要素 344
10.2系統字型枚舉、添加和刪除 344
10.2.1獲取系統安裝的字型列表 345
10.2.2為系統註冊新字型 348
10.2.3註冊字型實例——條形碼的使用 354
10.3邏輯字型對象的建立 355
10.3.1創建邏輯字型 355
10.3.2通過CreateFont函式創建邏輯字型 359
10.4文本輸出及顯示特效的實現 361
10.4.1有關文本輸出的API函式 361
10.4.2文本旋轉效果的實現 362
10.4.3文本透明效果的實現 364
10.4.4文本多彩效果的實現 364
10.5通過文本函式增強PB進度條控制項功能 366
10.5.1改進的PB進度條控制項 366
10.5.2定製進度條控制項 370
第5篇網路與Internet篇
第11章網路訪問 376
11.1網路連線對話框的調用 376
11.1.1網路連線對話框函式1 376
11.1.2網路連線對話框函式2 379
11.2枚舉和瀏覽網路資源 384
11.2.1枚舉網路資源 384
11.2.2通過資料夾瀏覽通用對話框瀏覽網路資源 390
11.3添加、取消網路連線 393
11.3.1相關API函式 393
11.3.2連線網路資源示例 395
11.4網路驅動器UNC路徑名及映射 397
11.4.1獲取網路驅動器的UNC路徑名 397
11.4.2映射網路驅動器 399
11.5網路時間同步 402
11.5.1獲取伺服器的時間信息 402
11.5.2與網路伺服器時間同步 411
11.6獲取用戶的網路登錄名 413
11.7判斷網路的連線狀態 415
11.8檢測網路IP位址能否聯通 417
11.8.1Ping命令與網際訊息控制協定 417
11.8.2通過API函式傳送ICMP回應請求 418
11.9獲取主機的MAC物理地址 423
11.9.1ARP協定及其工作原理 423
11.9.2通過IP位址獲取本地或遠程主機的MAC地址 424
第12章InternetExplore瀏覽器 428
12.1獲取瀏覽器信息 428
12.1.1取得默認瀏覽器的路徑和檔案名稱 428
12.1.2取得IE瀏覽器的版本信息 430
12.2從套用中打開瀏覽器 435
12.2.1使用API函式打開瀏覽器 435
12.2.2使用PB動態庫中函式打開瀏覽器 436
12.3巧用瀏覽器功能 437
12.3.1檔案下載 437
12.3.2使用IE自動完成功能 439
12.3.3操作IE的收藏夾 442
12.4為IE工具列添加自定義按鈕 447
12.4.1註冊表中IE工具列自定義按鈕的相關信息 447
12.4.2添加自定義按鈕套用示例 449
12.5在PB中定製瀏覽器 451
12.5.1IE瀏覽器架構 452
12.5.2WebBrowser控制項的屬性、方法、事件和OLE命令 452
12.5.3使用WebBrowser控制項定製瀏覽器 455
第13章遠程訪問服務RAS 463
13.1遠程訪問服務RAS概述 463
13.1.1遠程訪問服務 463
13.1.2遠程訪問服務API接口 464
13.1.3Windows的RAS電話簿 465
13.1.4RAS錯誤信息 466
13.2調用RAS通用對話框 467
13.2.1調用主撥號網路對話框 467
13.2.2調用正在撥號對話框 470
13.2.3調用撥號網路監視器對話框 472
13.2.4Windows2000/XP中調用連線屬性對話框 473
13.2.5Windows95/98中調用連線屬性對話框 476
13.2.6調用創建新連線對話框 478
13.3獲取系統撥號連線列表 479
13.3.1獲取系統所有撥號連線列表 479
13.3.2獲取當前所有活動連線列表 482
13.4建立與遠程網路的連線 484
13.4.1建立連線 484
13.4.2獲取連線狀態 486
13.4.3終止遠程訪問連線 489
13.4.4建立PB遠程訪問用戶對象 490
第14章WinInet撥號連線控制 499
14.1WinInet撥號連線API函式概述 499
14.2啟用撥號連線 500
14.2.1啟動IE默認撥號連線 500
14.2.2啟動指定撥號連線 503
14.3確定網路連線狀態 507
14.3.1獲取當前網路的連線狀態 507
14.3.2測試到Internet的網路連線條件 511
第15章WinInet基礎 513
15.1Internet協定 513
15.1.1TCP/IP協定 513
15.1.2HTTP協定 515
15.1.3OSI模型高層接口——WinInet 516
15.2WinInet接口函式 516
15.2.1WinInet接口函式 516
15.2.2WinInet接口函式句柄 519
15.2.3WinInet句柄層次關係 520
15.3WinInet版本及錯誤信息 523
15.3.1確定WinInet版本的重要性 523
15.3.2獲取WinInet錯誤信息 526
第16章FTP檔案傳輸 533
16.1FTP概述 533
16.1.1FTP協定和工作原理 533
16.1.2匿名FTP服務 534
16.2建立Internet會話 535
16.2.1FTP函式的調用層次 535
16.2.2打開Internet會話句柄 536
16.2.3建立Internet會話 539
16.3FTP伺服器目錄操作 542
16.3.1在FTP伺服器上獲取和切換工作目錄 543
16.3.2在FTP伺服器上創建和移除目錄 544
16.3.3列出FTP伺服器指定目錄下的子目錄或檔案 546
16.4FTP伺服器檔案操作 553
16.4.1從FTP伺服器下載檔案 553
16.4.2獲取FTP伺服器端檔案的大小 556
16.4.3向FTP伺服器上傳檔案 559
16.4.4刪除FTP伺服器端檔案 561
16.4.5重新命名FTP伺服器端檔案 563
16.5通過FTPCommand函式傳送FTP命令 565
16.5.1FTP控制連線和數據連線 566
16.5.2常用FTP命令 567
16.5.3使用FTPCommand函式傳送FTP命令 570
16.6構築FTP客戶端套用系統 574
16.6.1創建PBFTP用戶對象 575
16.6.2創建客戶端檔案和目錄操作用戶對象 588
16.6.3構建FTP客戶端套用系統 593
第6篇Winsock網路套用開發篇
第17章Winsock網路套用基礎 616
17.1WindowsSockets概述 616
17.1.1WindowsSockets基本概念 616
17.1.2Winsock在OSI模型中的地位 617
17.1.3Winsock傳輸數據類型 618
17.1.4Winsock的接口函式 619
17.1.5Winsock工作流程 623
17.2啟動Winsock服務 625
17.2.1Winsock服務啟動和終止 625
17.2.2處理Winsock錯誤 629
17.3主機名稱與IP位址 632
17.3.1IP位址概述 632
17.3.2IP位址IPv4與Ulong格式的相互轉換 634
17.3.3獲取本地主機名稱 636
17.3.4獲取主機IP位址 637
17.3.5網路順序和主機順序數值位相互轉換 641
17.4通過Socket連線到遠程主機 647
17.4.1創建或關閉Socket 647
17.4.2通過Socket連線到遠程主機 649
17.4.3與遠程主機建立連線示例 650
17.4.4綁定(Binding)Socket 654
17.4.5接收數據 654
17.4.6傳送數據 658
17.4.7偵聽和接收連線請求 662
第18章Winsock網路套用開發 665
18.1創建Winsock用戶對象 665
18.1.1聲明用戶對象結構、外部函式和常量 665
18.1.2用戶對象的事件處理程式 668
18.1.3創建用戶對象函式 669
18.2通過Winsock實現FTP功能 682
18.2.1通過Winsock實現FTP功能的基本思路 682
18.2.2創建基於Winsock的FTP用戶對象 684
18.2.3創建WinsockFTP套用 701
18.3通過Winsock傳送電子郵件 724
18.3.1傳送郵件的基本思路 724
18.3.2創建基於Winsock的SMTP用戶對象 726
18.3.3創建WinsockSMTP套用 734
18.4使用WinsockAPI實現點對點通信 736
18.4.1客戶端程式 736
18.4.2伺服器端程式 739
第19章Winsock控制項及網路套用開發 743
19.1Winsock控制項的屬性、事件和方法 743
19.1.1Winsock控制項的屬性 743
19.1.2Winsock控制項的方法 745
19.1.3Winsock控制項的事件 746
19.2使用Winsock控制項創建簡單的網路套用 749
19.2.1創建簡單的TCP網路套用 749
19.2.2創建簡單的UDP網路套用 753
19.3使用Winsock控制項實現與遠程時間伺服器時間同步 756
19.3.1與時間伺服器時間同步的基本原理 757
19.3.2與時間伺服器時間同步套用示例 758
附錄A函式索引 763
附錄B結構索引 766
附錄C示例索引 768