當前位置:編程學習大全網 - 編程語言 - Windows程序設計教程的目錄

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

  • 上一篇:如何在實踐中堅持創新
  • 下一篇:蘇州高達計算機怎麽樣啊
  • copyright 2024編程學習大全網