MFC Windows應用程式設計(第3版)

MFC Windows應用程式設計(第3版)

《MFC Windows應用程式設計(第3版)》是2013年清華大學出版社出版的圖書,作者是任哲。

圖書簡介

本書為《MFC Windows 應用程式設計》的第3版。本書沿襲前一版的編寫原則和風格,在讀者學習了C/C++的基礎上,從Windows SDK程式設計出發,用C++類對Windows應用程式進行了模擬封裝,重點介紹MFC的應用程式框架。隨後以精練的語言介紹Windows的圖形圖像處理、應用程式界面、資源、檔案、動態程式庫、進程與執行緒管理等知識。最後,介紹組件對象模型(COM) 、ActiveX技術、資料庫和異常處理的基礎知識。

圖書目錄

第1章 Windows程式基礎1

1.1 Windows應用程式的基本概念1

1.1.1 一般概念1

1.1.2 Windows核心、API和開發工具7

1.2 Windows的數據類型8

1.2.1 Windows的一個特殊數據類型--句柄9

1.2.2 視窗類WNDCLASS13

1.2.3 Windows函式的調用說明14

1.3 視窗的創建和顯示15

1.4 事件、訊息循環和視窗函式18

1.5 Windows應用程式的結構20

1.5.1 主函式20

1.5.2 視窗函式22

1.5.3 Windows系統、主函式、視窗函式之間的關係23

1.6 Windows程式代碼重構30

1.6.1 用函式封裝訊息處理代碼30

1.6.2 訊息映射表34

練習題38

思考題38

第2章 Windows應用程式的類封裝39

2.1 應用程式主函式的C++類封裝39

2.1.1 視窗類的聲明40

2.1.2 應用程式類的聲明41

2.1.3 主函式封裝後的程式42

2.2 派生類的套用46

2.2.1 應用程式類的派生類47 MFC Windows應用程式設計(第3版)目錄 2.2.2 視窗類的派生類49

2.3 視窗函式的封裝--訊息映射53

2.3.1 訊息處理函式的簡單封裝54

2.3.2 訊息映射56

2.3.3 訊息映射表的聲明和實現59

小結62

練習題62

思考題63

第3章 MFC應用程式框架65

3.1 早期的應用程式框架及其MFC類65

3.1.1 早期的應用程式框架65

3.1.2 MFC的視窗類66

3.1.3 CWinApp類67

3.2 最簡單的MFC程式實例68

3.2.1 程式的編寫68

3.2.2 程式主函式的代碼70

3.3 應用程式的文檔/視圖結構71

3.3.1 文檔/視圖結構的基本概念71

3.3.2 單文檔界面和多文檔界面結構73

3.4 文檔類CDocument的派生類74

3.5 視圖類CView的派生類75

3.6 視窗框架類CFrameWnd的派生類76

3.7 文檔模板類CDocTemplate78

3.8 應用程式類的派生類79

3.8.1 應用程式類派生類的代碼79

3.8.2 程式設計師的主要工作80

3.9 MFC文檔/視圖應用程式框架中各個對象的關係81

3.9.1 應用程式各對象創建的順序81

3.9.2 應用程式各對象之間的聯繫82

3.9.3 文檔/視圖應用程式訊息的傳遞85

3.10 對象的動態創建85

3.10.1 問題的提出與解決85

3.10.2 類信息表及其聲明和實現90

3.10.3 對象類信息表的提取91

小結92

練習題92

思考題92

第4章 圖形93

4.1 DC和GDI93

4.1.1 設備描述環境93

4.1.2 Windows的GDI94

4.2 CDC類94

4.3 CPen類96

4.4 CBrush類99

4.5 繪圖模式101

4.6 文本和CFont類102

4.6.1 顯示文本102

4.6.2 字型和CFont類105

4.7 CDC的其他派生類107

4.7.1 視窗用戶區設備描述環境CClientDC類107

4.7.2 圖元檔案設備描述環境CMetaFileDC類108

小結110

練習題110

思考題110

第5章 MFC的通用類111

5.1 簡單數據類111

5.1.1 點類CPoint111

5.1.2 矩形類CRect112

5.1.3 尺寸類CSize112

5.1.4 字元串類CString113

5.2 群體數據類114

5.3 數據在文檔/視圖結構程式中的位置116

小結118

練習題118

思考題118

第6章 Windows應用程式界面的設計119

6.1 SDI和MDI界面119

6.2 SDI界面視窗的樣式120

6.2.1 在MFC AppWizard中確定視窗樣式120

6.2.2 在函式PreCreateWindow中修改視窗的樣式121

6.2.3 可拆分為小視窗的SDI界面125

6.3 拆分視窗的同步更新及更新效率126

6.3.1 拆分視窗的同步更新126

6.3.2 提高拆分視窗更新效率的方法126

6.4 創建帶有滾動條的視窗131

小結135

練習題135

思考題136

第7章 滑鼠和鍵盤137

7.1 處理滑鼠訊息137

7.1.1 用戶區滑鼠訊息138

7.1.2 非用戶區滑鼠訊息142

7.1.3 滑鼠訊息的捕獲143

7.2 處理鍵盤訊息144

7.2.1 按鍵的虛擬碼144

7.2.2 一般按鍵訊息147

7.2.3 系統按鍵訊息148

7.3 應用程式視窗的焦點149

小結150

練習題151

思考題152

第8章 資源153

8.1 資源和資源檔案153

8.1.1 什麼是資源153

8.1.2 資源頭檔案154

8.1.3 資源描述檔案155

8.2 選單155

8.2.1 資源描述檔案的選單部分155

8.2.2 編輯現有的選單157

8.2.3 自定義選單160

8.2.4 用選單編輯器編輯選單162

8.2.5 選單命令選項的動態修改162

8.3 快捷鍵表165

8.3.1 資源描述檔案的快捷鍵表部分165

8.3.2 使用快捷鍵編輯器編輯快捷鍵表166

8.4 圖示166

8.4.1 製作圖示166

8.4.2 資源描述檔案的圖示部分167

8.5 點陣圖168

8.5.1 資源描述檔案的點陣圖部分168

8.5.2 點陣圖資源的使用168

小結171

練習題172

思考題172

第9章 MFC的檔案處理機制173

9.1 CFile類173

9.1.1 CFile類常用成員函式173

9.1.2 檔案的創建與打開173

9.1.3 檔案的讀寫175

9.1.4 CFile的派生類CMemFile179

9.1.5 CFileFind類180

9.2 CArchive類181

9.2.1 插入符和提取符的重載181

9.2.2 CArchive類對象與CFile類對象的關聯182

9.3 對象的序列化184

9.3.1 序列化的基本概念184

9.3.2 MFC的Serialize函式185

9.3.3 MFC應用程式的序列化過程187

9.3.4 序列化的順序188

9.4 宏DECLARE_SERIAL和IMPLEMENT_SERIAL191

9.5 MFC檔案命令的默認處理流程196

9.5.1 應用程式啟動後文檔的初始化流程196

9.5.2 應用程式選單命令的默認處理196

小結197

練習題197

思考題197

第10章 控制項199

10.1 標準控制項及其使用199

10.1.1 標準控制項200

10.1.2 靜態文本控制項200

10.1.3 按鈕控制項202

10.1.4 編輯控制項206

10.2 通用控制項208

10.2.1 進度條控制項208

10.2.2 微調器控制項209

10.2.3 圖像列表控制項213

10.2.4 列表視圖控制項214

10.3 控制項的背景顏色223

小結224

練習題225

第11章 對話框227

11.1 對話框模板資源描述檔案227

11.2 自定義對話框類230

11.2.1 MFC的對話框類及用戶自定義對話框類230

11.2.2 模態對話框231

11.3 對話框的數據交換和數據檢驗235

11.3.1 數據交換235

11.3.2 使用Class Wizard為對話框添加成員變數237

11.3.3 數據檢驗239

11.4 以對話框為主界面的應用程式239

11.4.1 應用程式框架的設計240

11.4.2 應用程式代碼的設計240

11.5 MFC預置的通用對話框242

11.5.1 檔案對話框242

11.5.2 字型選擇對話框244

11.6 非模態對話框247

11.7 屬性頁249

小結252

練習題253

思考題253

第12章 進程與執行緒的管理255

12.1 進程、執行緒及其優先權255

12.1.1 進程、執行緒的基本概念255

12.1.2 進程和執行緒的優先權255

12.2 工作執行緒和用戶界面執行緒257

12.2.1 工作執行緒的創建257

12.2.2 用戶界面執行緒的創建258

12.3 執行緒同步260

12.3.1 執行緒同步的基本概念260

12.3.2 事件261

12.3.3 臨界段265

12.3.4 互斥體267

12.3.5 信號量268

12.4 執行緒通信270

12.4.1 利用全局變數進行通信271

12.4.2 利用自定義的訊息進行通信272

小結273

練習題274

第13章 動態程式庫及其使用275

13.1 程式庫275

13.1.1 靜態程式庫275

13.1.2 動態程式庫277

13.2 動態程式庫的創建279

13.2.1 導出函式的聲明279

13.2.2 用MFC編寫DLL282

13.3 動態程式庫的使用285

13.3.1 隱式連結方式285

13.3.2 顯式連結方式286

小結287

練習題288

思考題288

第14章 組件對象模型基礎289

14.1 組件對象模型概述289

14.1.1 軟體模組化的發展歷程289

14.1.2 組件對象模型297

14.1.3 COM術語297

14.2 組件類、接口的標識及註冊298

14.3 COM規定的標準服務299

14.3.1 接口IUnknown299

14.3.2 接口IClassFactory和IDispatch303

14.4 COM接口的二進制標準及IDL語言305

14.5 使用ATL設計組件305

14.5.1 ATL對COM的支持305

14.5.2 使用ATL設計組件的步驟和方法306

14.5.3 瀏覽ATL生成的代碼309

14.6 組件的包含與聚合312

14.6.1 包含312

14.6.2 聚合313

小結313

練習題314

思考題314

第15章 ActiveX套用基礎315

15.1 ActiveX技術概述315

15.1.1 ActiveX的前身--OLE315

15.1.2 ActiveX技術的緣起317

15.1.3 ActiveX自動化317

15.1.4 ActiveX控制項318

15.1.5 ActiveX文檔319

15.1.6 ActiveX文檔與ActiveX控制項的區別319

15.2 用MFC設計ActiveX容器320

15.2.1 ActiveX容器的結構320

15.2.2 用MFC設計ActiveX容器320

15.3 用MFC設計ActiveX伺服器323

15.4 用MFC設計ActiveX自動化應用程式324

15.4.1 用MFC設計ActiveX自動化伺服器324

15.4.2 用MFC設計ActiveX自動化客戶327

15.5 用MFC設計ActiveX控制項329

小結332

練習題333

第16章 用MFC設計資料庫應用程式335

16.1 資料庫系統及資料庫應用程式335

16.1.1 資料庫系統335

16.1.2 資料庫套用系統的設計336

16.2 ODBC的基本構成336

16.3 配置ODBC數據源337

16.3.1 ODBC管理器338

16.3.2 配置ODBC數據源的方法和步驟338

16.4 MFC的ODBC類340

16.4.1 CDatabase類341

16.4.2 CRecordset類342

16.4.3 CDBException類346

16.5 ODBC應用程式實例347

16.5.1 顯示和處理表中的數據347

16.5.2 連線兩個表352

16.6 使用DAO設計資料庫應用程式簡介353

16.6.1 DAO簡介353

16.6.2 DAO和MFC353

16.6.3 使用MFC DAO類編程354

小結355

練習題355

第17章 異常和異常處理357

17.1 異常處理的基本思想357

17.2 異常對象360

17.3 MFC的異常類362

17.3.1 CException類362

17.3.2 CException類的子類362

小結363

練習題364

第18章 Visual C++.NET簡介365

18.1 .NET及.NET Framework365

18.1.1 .NET的出現365

18.1.2 .NET概覽367

18.1.3 開發語言和開發工具370

18.1.4 託管和非託管代碼370

18.2 Visual C++與.NET372

18.2.1 符合標準的C++ 372

18.2.2 .NET中開發MFC程式 377

18.2.3 C++/CLI的出現 379

18.3 C++/CLI語言簡介 379

18.3.1 C++/CLI的控制台輸出和輸入380

18.3.2 類的引用類型和值類型381

18.3.3 接口382

18.3.4 抽象類和封閉類384

18.3.5 屬性384

18.3.6 委託388

18.3.7 事件389

18.3.8 System::Object393

18.3.9 裝箱和拆箱394

18.4 Visual C++的Windows窗體應用程式394

練習題396

附錄A 數據類型與Windows句柄397

A.1 簡單數據類型397

A.2 結構數據類型399

A.3 句柄399

附錄B 標識符的匈牙利記法401

附錄C MFC的訊息映射403

C.1 三類訊息403

C.2 訊息映射表項結構AFX_MSGMAP_ENTRY403

C.3 在類聲明檔案中聲明訊息映射404

C.4 在類實現檔案中實現訊息映射405

附錄D 文檔/視圖框架的補充內容409

D.1 文檔類與其他類對象之間的配合409

D.2 資源中與文檔模板類型有關的字元串411

D.3 文檔類CDocument的代碼411

附錄E 多文檔/視圖框架的一個實例415

E.1 創建工程415

E.2 使默認文檔模板成為TXT文檔模板415

E.3 添加點陣圖文檔模板418

附錄F 類信息表與CObject類421

F.1 類信息表421

F.2 CObject類對RTTI的支持422

F.3 CObject對文檔序列化的支持422

F.4 CObject對提供程式調試診斷信息的支持423

附錄G Visual C++中檔案類型小結425

相關詞條

熱門詞條

聯絡我們