Windows程式設計教程

Windows程式設計教程

《Windows程式設計教程》是2009年10月人民郵電出版社出版的圖書,作者是郭暤岩、廖琪梅。該書介紹了在Microsoft Windows98/2000/NT/XP環境下套用C語言及API編寫應用程式的最基本、最重要的方法,討論了Windows應用程式的組成和工作原理。

基本信息

內容簡介

本書內容按照教學要求組織,並遵循“從簡單到復發、循序漸進、理論聯繫實際”的原則講解,很多基本概念、編程方法與技巧都通過具有最小的代碼段、最強大的功能和最大靈活性的經典例程來介紹。每章末附有大量習題,供學習參考。

本書的包容性很好,只要熟悉C語言,有一定使用Windows作業系統經歷的讀者都能掌握書中的內容。本書語言通俗易懂,條理清晰,內容豐富,非常適合作為高等院校的教材,也可供讀者自學。

圖書目錄

第1章概述1

1.1Windows的發展歷史1

1.2Windows作業系統的基本性質和用途3

1.3API的基本特徵及其發展歷程5

1.4編程工具及其發展概況6

1.5集成開發環境7

1.6C程式和Windows程式的比較7

1.7Windows程式HelloMsg.c的三個基本組成部分8

1.7.1#include聲明和包含檔案8

1.7.2Windows程式HelloMsg.c的進入點8

1.7.3MessageBox函式10

1.8字元編碼及Unicode簡介11

1.8.1字元集編碼的發展簡史12

1.8.2雙位元組字元集13

1.8.3Unicode字元集13

1.9字元的數據類型char和寬字元數據類型wchar14

1.9.1作業系統中基本數據類型的確定14

1.9.2單位元組字元數據類型14

1.9.3寬字元數據類型15

1.9.4寬字元庫函式16

1.9.5字元串函式的Unicode版和ASCII版的合一方法…17

1.9.6TCHAR.h頭檔案的作用17

1.9.7編譯命令中_UNICODE識別字的引入17

1.9.8Windows對寬字元支持18

1.10應用程式實現Unicode和ASCII混合編碼的原理19

1.10.1WINNT.h是對Unicode支持的頭檔案19

1.10.232位系統中的MessageBox函式20

1.10.3Windows的字元串處理函式21

1.10.4Windows中的sprintf函式22

練習124

第2章Windows作業系統的定址方法與存儲器管理25

2.1Windows的晶片26

2.2Windows的分段定址方法26

2.2.116位實模式26

2.2.216位保護模式27

2.2.332位保護模式29

2.2.4分段定址方法的缺陷及其消除方法31

2.332位分頁保護模式及其定址方法31

2.4搶占式多任務、非搶占式多任務、進程和執行緒的概念33

2.4.1進程和執行緒的概念33

2.4.2搶占式多任務34

2.4.3非搶占式多任務34

2.4.432位搶占式多任務多執行緒的工作原理36

2.532位Windows應用程式的訊息輸入方式37

2.5.1多執行緒的開發37

2.5.232位Windows採用多重輸入佇列37

2.632位Windows中虛擬記憶體空間的劃分38

2.732位Windows中虛擬記憶體的管理40

2.7.1記憶體頁與分頁檔案40

2.7.2有關地址空間的解釋40

2.7.332位Windows中分配記憶體頁的兩種方法——預約與委託41

2.7.4異常事件及其處理方法43

2.7.5VirtualQuery()的用法43

2.7.6改變頁保護標識的函式VirtualProtect()45

2.7.7記憶體的釋放函式VirtualFree()46

練習247

第3章開發Windows應用程式的技術基礎49

3.1應用程式的結構與編譯49

3.1.1Windows應用程式的結構和C語言程式結構的比較49

3.1.2Windows應用程式的編譯和C語言程式編譯的比較50

3.1.3Windows編譯應用程式所需的六個基本檔案51

3.2Windows應用程式設計接口57

3.3標識符的匈牙利命名慣例58

3.4事件驅動程式設計59

3.5動態程式庫函式61

3.6PASCAL調用規範與WINAPI調用規範62

3.7句柄與代號63

3.8Windows應用程式的工作原理63

3.9視窗類的作用及其用法初步65

練習366

第4章應用程式的分析69

4.1HELLOWIN.C應用程式69

4.2WinMain函式的四個參數72

4.3視窗類結構WNDCLASS73

4.4視窗類結構的各條款介紹74

4.5與視窗有關的識別字的介紹76

4.6和視窗有關的幾種結構76

4.7代號簡介77

4.8函式調用77

4.9註冊視窗類78

4.10建立視窗78

4.11顯示視窗79

4.12基本訊息循環80

4.12.1GetMessage(&msg,NULL,0,0)函式80

4.12.2TranslateMessage(&msg)和DispatchMessage(&msg)函式80

4.12.3MSG結構及其解釋81

4.13視窗函式82

練習484

第5章Windows作業系統中的視窗類85

5.1Windows中的視窗類概述85

5.1.1系統全局視窗類86

5.1.2套用專用視窗類86

5.1.3套用全局視窗類87

5.2幾種視窗類結構介紹87

5.2.1Windows 95中的擴展視窗類結構87

5.2.2視窗類條款的補充說明88

5.2.3Windows NT中的視窗類89

5.3幾個與視窗類有關的函式90

5.3.1LoadIcon函式90

5.3.2LoadImage函式91

5.3.3LoadCursor函式92

5.3.4CreateSolidBrush函式93

5.4視窗類的式樣95

5.5設計中值得注意的幾個問題97

練習598

第6章輸出101

6.1客戶區的繪製和更新102

6.1.1WM_PAINT訊息102

6.1.2有效矩形和無效矩形103

6.2GDI簡介104

6.2.1設備描述表104

6.2.2獲得hDC代號的方法105

6.3TextOut函式109

6.4重畫區域的設定110

6.5系統字型111

6.5.1字型信息的存儲112

6.5.2用五個參數表示字型尺寸112

6.5.3格式化文字113

6.6Windows系統中的視覺元件信息表115

6.7字型顯示例子SYSMETS1.C116

6.7.1SYSMETS1.C視窗函式的分析119

6.7.2SYSMETS1.C程式存在問題120

6.8滾動條的使用120

6.8.1滾動條的範圍和地址121

6.8.2滾動條訊息122

6.8.3在SYSMETS1.C中加入滾動功能124

6.8.4在WM_VSCROLL訊息之後更新客戶區的方法128

6.9建立更好的滾動129

6.9.132位滾動條函式的套用129

6.9.2滾動範圍的計算131

6.9.3新SYSMETS——SYSMETS3.C132

練習6138

第7章圖形程式的編程基礎141

7.1概論141

7.1.1GDI函式及其分類142

7.1.2GDI繪製的基本圖形143

7.1.3圖形程式設計的其他問題144

7.2設備描述表145

7.2.1取得設備描述表代號的方法145

7.2.2取得設備描述表中信息的方法146

7.2.3保存設備描述表147

7.2.4設備描述表的構成148

7.2.5DEVCAPS1程式149

7.2.6每個度量單位內的像素數目——解析度152

7.2.7色彩153

7.3畫線函式與畫筆155

7.3.1處理像素的函式155

7.3.2畫線函式156

7.3.3畫正弦曲執行緒序SINEWAVE158

7.3.4畫線函式與畫圖函式的關係159

7.3.5像素偏差問題160

7.3.6LINEDEMO畫圖程式163

7.3.7畫筆164

7.3.8背景模式、背景顏色及其處理168

7.3.9“位布爾運算”與畫線模式169

7.4畫圖171

7.4.1圖形函式171

7.4.2圖形的填入——畫刷171

7.4.3畫刷的建立、選擇和刪除172

7.5GDI映射方式174

7.5.1映射方式概述174

7.5.2設備坐標和邏輯坐標176

練習7177

第8章鍵盤程式編程基礎179

8.1鍵盤輸入概論179

8.1.1鍵盤的輸入焦點180

8.1.2系統訊息佇列與應用程式訊息佇列181

8.2按鍵181

8.2.1基本概念181

8.2.2四個按鍵訊息182

8.2.3系統按鍵訊息與非系統按鍵訊息182

8.2.4虛擬鍵碼183

8.2.5按鍵訊息的參數lParam187

8.2.6如何使用GetKeyState函式了解按鍵的狀態188

8.2.7按鍵訊息及其使用189

8.3字元訊息及其處理192

8.3.1概述192

8.3.2四個字元訊息193

8.3.3按鍵訊息和字元訊息的處理順序194

8.3.4控制字元鍵及其處理195

8.3.5WM_DEADCHAR訊息196

8.4顯示鍵盤訊息和字元訊息的顯示程式KEYVIEW1197

8.5字型202

8.5.1Windows支持的三種字型202

8.5.2Windows中的內定字型203

8.5.3顯示字型的程式STOKFONT204

練習8208

第9章滑鼠程式編程基礎211

9.1概述211

9.1.1GetSystemMetrics函式的套用211

9.1.2預先定義的滑鼠游標212

9.1.3滑鼠訊息與鍵盤訊息的區別212

9.1.4顯示區域內的滑鼠訊息及其處理方法212

9.1.5滑鼠訊息在其他情況下的處理214

9.1.6滑鼠訊息的處理例子214

9.1.7CONNECT程式的套用216

9.2按鍵及其處理217

9.2.1Shift Ctrl鍵的處理217

9.2.2為單鍵滑鼠提供右鍵的處理方法218

9.2.3如何使用GetKeyState函式了解滑鼠按鍵狀態219

9.2.4雙擊滑鼠按鍵及其處理219

9.3非顯示區域滑鼠訊息及其處理220

9.3.1非顯示區域滑鼠訊息220

9.3.2非顯示區域中的命中測試訊息221

9.3.3從訊息產生訊息222

9.4顯示區域中的命中測試程式223

9.4.1命中測試程式CHECKER1.C223

9.4.2使用鍵盤模擬滑鼠225

9.4.3在CHECKER1中加入鍵盤界面後的程式226

9.5子視窗的基本概念231

9.5.1用子視窗實現CHECKER程式——CHECKER3.C231

9.5.2CHECKER3中添加鍵盤界面——CHECKER4.C237

練習9244

第10章預定義視窗類和子視窗控制項247

10.1基本概念247

10.1.1什麼是子視窗控制項247

10.1.2怎樣建立子視窗控制項248

10.1.3控制項的操作250

10.1.4Windows系統中的控制項251

10.2按鈕控制項例程BTNLOOK.C252

10.2.1CreateWindow函式的套用256

10.2.2按鈕控制項的預定義視窗類button256

10.2.3按鈕控制項的名稱標籤257

10.2.4按鈕控制項的式樣257

10.2.5按鈕控制項的尺寸與位置257

10.2.6CreateWindow的其他參數257

10.3子視窗與父視窗之間的訊息傳送258

10.3.1子視窗向父視窗傳送command訊息258

10.3.2父視窗向子視窗傳送訊息259

10.4按鈕260

10.4.1按鈕的分類260

10.4.2分組塊264

10.4.3如何改變按鈕上的文字264

10.4.4按鈕的可見與啟用264

10.4.5按鈕和輸入焦點265

10.5按鈕控制項的顏色及其設定266

10.5.1WM_CTLCOLORBTN訊息的套用268

10.5.2擁有者自畫按鈕表面圖案的程式OWNDRAW.C269

10.6靜態控制項274

10.6.1預定義靜態視窗類的特點274

10.6.2靜態控制項的視窗式樣275

10.6.3在靜態控制項上寫“文字”275

10.7滾動條控制項276

10.7.1滾動條視窗類276

10.7.2滾動條控制項例程COLORS1.C277

10.7.3COLORS1程式的設計技巧及有關函式說明283

10.8編輯控制項290

10.8.1編輯控制項的例程POPPAD1.C290

10.8.2編輯控制項的視窗類edit和視窗式樣ES_291

10.8.3編輯控制項產生的通知碼292

10.8.4編輯控制項的使用293

10.8.5把訊息傳送給編輯控制項293

10.9列表框控制項294

10.9.1預定義列表框視窗類listbox294

10.9.2列表框式樣295

10.9.3列表框功能識別字LB_296

10.9.4套用功能識別字對列表框中項目進行增刪296

10.9.5套用功能識別字對列表框中項目進行選擇、查找與獲得298

10.9.6接收來自列表框的通知碼299

練習10300

第11章對話框的使用303

11.1概述303

11.1.1什麼是對話框303

11.1.2對話框的分類304

11.1.3對話框函式305

11.1.4在對話框中使用控制項306

11.1.5設計模式對話框的步驟306

11.2模式對話框的實例分析307

11.2.1最簡單的模式對話框例程About1.C307

11.2.2對話框模板和控制項的設計314

11.2.3較複雜模式對話框的例程ABOUT2.C318

11.2.4對話框函式中控制項的使用325

11.2.5避免使用整體變數的方法330

11.2.6Tab鍵、游標移動鍵在控制項輸入焦點轉移中的套用331

11.2.7在對話框上畫圖333

11.2.8將其他函式用於對話框334

11.3非模式對話框實例分析334

11.3.1模式對話框與非模式對話框的比較335

11.3.2非模式對話框例程COLORS2.C337

練習11343

第12章Windows中的資源345

12.1資源描述檔案與模組定義檔案345

12.1.1有關“資源”、“模板”的基本概念345

12.1.2資源描述檔案346

12.1.3模組定義檔案347

12.2圖示349

12.2.1概述349

12.2.2Developer Studio開發應用程式ICONDEMO的基本方法350

12.2.3大圖示、小圖示的套用355

12.2.4解讀ICONDEMO.RC和RESOURCE.H檔案356

12.2.5LoadIcon返回圖示代號356

12.2.6在應用程式中使用圖示357

12.3在程式中使用定製游標358

12.3.1在視窗類中設定游標358

12.3.2用SetClassLong設定子視窗中的游標358

12.3.3用SetCursor改變視窗中的游標359

12.4字元串資源及其套用359

12.4.1什麼是字元串資源359

12.4.2使用字元串資源的程式段360

12.5選單361

12.5.1選單概念361

12.5.2選單代號、選單項ID與選單ID362

12.5.3在程式中引用選單362

12.5.4和選單有關的視窗訊息363

12.5.5選單顯示例程MENUDEMO.C366

12.5.6建立選單的另一種方法373

12.5.7在客戶區範圍內任意處可以啟動的下拉式選單374

12.5.8系統選單378

12.5.9一些改變選單的函式379

12.5.10處理選單的其他函式379

12.6加速鍵381

12.6.1用加速鍵實現選單項功能381

12.6.2安排加速鍵的幾條規則382

12.6.3加速鍵的實施步驟382

12.6.4加速鍵表模板382

12.6.5用Developer Studio生成加速鍵表模板385

12.6.6在程式中載入加速鍵表385

12.6.7訊息循環中加入對加速鍵的處理386

12.6.8視窗函式接收加速鍵的視窗訊息387

12.7選單與加速鍵在應用程式中的套用——POPPAD2實例分析388

12.7.1POPPAD2例程388

12.7.2加速鍵表的載入395

12.7.3case WM_INITMENUPOPUP訊息處理分支的解釋396

練習12397

附錄A參考VC++的索引399

參考文獻403

相關詞條

相關搜尋

熱門詞條

聯絡我們