MFC Windows應用程序設計(第4版)

任哲

  • 出版商: 清華大學
  • 出版日期: 2025-07-01
  • 售價: $507
  • 語言: 簡體中文
  • ISBN: 7302694664
  • ISBN-13: 9787302694663
  • 相關分類: 微軟技術
  • 下單後立即進貨 (約4週~6週)

  • MFC Windows應用程序設計(第4版)-preview-1
  • MFC Windows應用程序設計(第4版)-preview-2
  • MFC Windows應用程序設計(第4版)-preview-3
MFC Windows應用程序設計(第4版)-preview-1

相關主題

商品描述

"本書依照前面幾版的編寫原則和風格,在掌握C/C++知識的基礎上,從Windows SDK程序設計出發,用C++類對Windows應用程序進行了模擬封裝,重點介紹了MFC的應用程序框架。隨後以精練的語言介紹Windows的圖形圖像處理、應用程序界面、資源、文件、動態連接庫、進程與線程管理、組件對象模型(COM)、ActiveX技術、數據庫和異常處理的基礎知識。最後,在第18、19兩章重點介紹了.NET/C#的反射、特性、擴展方法、Linq和C#動態特性的相關知識,為讀者繼續研習.NET技術奠定了基礎。 本書除了具有重點突出、註重應用、兼顧說理性和實用性、文字通俗易懂的特點之外,還以適當的方法加強了對MFC重點技術核心內容的介紹,使讀者在有限的篇幅中獲得盡可能大的信息量。作為一本入門書籍,本書適合作為普通高等學校的教學參考用書,也可以作為計算機開發應用人員的參考書。 為了便於學習,本書配有《MFC Windows應用程序設計習題解答及上機實驗》(第4版)(簡稱配套教材)。通過配套教材,對本書的重點習題進行詳細解答,通過上機實驗使讀者更好地掌握相關知識。 "

作者簡介

任哲 教授 北華大學計算機學院從事高校計算機相關教學、管理和科研二十多年。在國家核心期刊上發表計算機專業論文多篇。曾獲吉林省教學成果獎二項。主編教材多部。

目錄大綱

目錄

 

 

第1章Windows程序基礎1

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

1.1.1一般概念1

1.1.2Windows內核、API和開發工具6

1.2Windows的數據類型7

1.2.1Windows的一個特殊數據類型——句柄8

1.2.2窗口類WNDCLASS12

1.2.3Windows函數的調用說明13

1.3窗口的創建和顯示14

1.4事件、消息循環和窗口函數16

1.5Windows應用程序的結構19

1.5.1主函數19

1.5.2窗口函數20

1.5.3Windows系統、主函數、窗口函數之間的關系21

1.6Windows程序代碼重構27

1.6.1用函數封裝消息處理代碼28

1.6.2消息映射表31

本章小結34

習題134第2章Windows應用程序的類封裝35

2.1應用程序主函數的C++類封裝35

2.1.1窗口類的聲明35

2.1.2應用程序類的聲明37

2.1.3主函數封裝後的程序37

2.2派生類的應用41

2.2.1應用程序類的派生類41

2.2.2窗口類的派生類43

2.3窗口函數的封裝——消息映射47

2.3.1消息處理函數的簡單封裝47

2.3.2消息映射49

2.3.3消息映射表的聲明和實現52

本章小結54

習題255第3章MFC應用程序框架56

3.1早期的應用程序框架及其MFC類56

3.1.1早期的應用程序框架56

3.1.2MFC的窗口類56

3.1.3CWinApp類58

3.2最簡單的MFC程序實例59

3.2.1程序的編寫59

3.2.2程序主函數的代碼60

3.3應用程序的文檔/視圖結構61

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

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

3.4文檔類CDocument的派生類64

3.5視圖類CView的派生類65

3.6窗口框架類CFrameWnd的派生類66

3.7文檔模板類CDocTemplate 67

3.8應用程序類的派生類69

3.8.1應用程序類派生類的代碼69

3.8.2程序員的主要工作70

3.9MFC文檔/視圖應用程序框架中各個對象的關系70

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

3.9.2應用程序各對象之間的聯系71

3.9.3文檔/視圖應用程序消息的傳遞74

3.10對象的動態創建74

3.10.1問題的提出與解決74

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

3.10.3對象類信息表的提取80

本章小結80

習題380第4章圖形81

4.1DC和GDI81

4.1.1設備描述環境81

4.1.2Windows的GDI81

4.2CDC類82

4.3CPen類84

4.4CBrush類86

4.5繪圖模式89

4.6文本和CFont類89

4.6.1顯示文本89

4.6.2字體和CFont類92

4.7CDC的其他派生類94

4.7.1窗口用戶區設備描述環境CClientDC類94

4.7.2圖元文件設備描述環境CMetaFileDC類95

本章小結96

習題496第5章MFC的通用類98

5.1簡單數據類98

5.1.1點類CPoint98

5.1.2矩形類CRect98

5.1.3尺寸類CSize99

5.1.4字符串類CString99

5.2群體數據類101

5.3數據在文檔/視圖結構程序中的位置103

本章小結104

習題5104第6章Windows應用程序界面的設計105

6.1SDI和MDI界面105

6.2SDI界面窗口的樣式106

6.2.1在MFC AppWizard中確定窗口樣式106

6.2.2在函數PreCreateWindow()中修改窗口的樣式107

6.2.3可拆分為小窗口的SDI界面110

6.3拆分窗口的同步更新及更新效率111

6.3.1拆分窗口的同步更新111

6.3.2提高拆分窗口更新效率的方法112

6.4創建帶有滾動條的窗口116

本章小結120

習題6120第7章鼠標和鍵盤121

7.1處理鼠標消息121

7.1.1用戶區鼠標消息121

7.1.2非用戶區鼠標消息125

7.1.3鼠標消息的捕獲126

7.2處理鍵盤消息127

7.2.1按鍵的虛擬碼128

7.2.2一般按鍵消息129

7.2.3系統按鍵消息131

7.3應用程序窗口的焦點131

本章小結133

習題7133第8章資源135

8.1資源和資源文件135

8.1.1什麼是資源135

8.1.2資源頭文件135

8.1.3資源描述文件136

8.2菜單137

8.2.1資源描述文件的菜單部分137

8.2.2編輯現有的菜單139

8.2.3自定義菜單141

8.2.4用菜單編輯器編輯菜單143

8.2.5菜單命令選項的動態修改143

8.3快捷鍵表146

8.3.1資源描述文件的快捷鍵表部分146

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

8.4圖標147

8.4.1制作圖標147

8.4.2資源描述文件的圖標部分148

8.5位圖148

8.5.1資源描述文件的位圖部分148

8.5.2位圖資源的使用149

本章小結151

習題8152第9章MFC的文件處理機制153

9.1CFile類153

9.1.1CFile類常用成員函數153

9.1.2文件的創建與打開154

9.1.3文件的讀寫155

9.1.4CFile的派生類CMemFile158

9.1.5CFileFind類159

9.2CArchive類160

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

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

9.3對象的序列化163

9.3.1序列化的基本概念163

9.3.2MFC的Serialize()函數163

9.3.3MFC應用程序的序列化過程165

9.3.4序列化的順序166

9.4宏DECLARE_SERIAL和IMPLEMENT_SERIAL169

9.5MFC文件命令的默認處理流程173

9.5.1應用程序啟動後文檔的初始化流程173

9.5.2應用程序菜單命令的默認處理174

本章小結174

習題9175第10章控件176

10.1標準控件及其使用176

10.1.1標準控件176

10.1.2靜態文本控件177

10.1.3按鈕控件179

10.1.4編輯控件182

10.2通用控件184

10.2.1進度條控件184

10.2.2微調器控件185

10.2.3圖像列表控件188

10.2.4列表視圖控件189

10.3控件的背景顏色196

本章小結198

習題10199第11章對話框200

11.1對話框模板資源描述文件200

11.2自定義對話框類202

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

11.2.2模態對話框204

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

11.3.1數據交換207

11.3.2使用Class Wizard為對話框添加成員變量209

11.3.3數據檢驗211

11.4以對話框為主界面的應用程序211

11.4.1應用程序框架的設計211

11.4.2應用程序代碼的設計211

11.5MFC預置的通用對話框214

11.5.1文件對話框214

11.5.2字體選擇對話框215

11.6非模態對話框218

11.7屬性頁220

本章小結222

習題11223第12章進程與線程的管理224

12.1進程、線程及其優先權224

12.1.1進程、線程的基本概念224

12.1.2進程和線程的優先級225

12.2工作線程和用戶界面線程226

12.2.1工作線程的創建226

12.2.2用戶界面線程的創建227

12.3線程同步228

12.3.1線程同步的基本概念228

12.3.2事件229

12.3.3臨界段233

12.3.4互斥體234

12.3.5信號量236

12.4線程通信238

12.4.1使用全局變量進行通信238

12.4.2使用自定義的消息進行通信239

本章小結240

習題12241第13章動態連接庫及其使用242

13.1連接庫242

13.1.1靜態連接庫242

13.1.2動態連接庫243

13.2動態連接庫的創建245

13.2.1導出函數的聲明245

13.2.2用MFC編寫DLL文件248

13.3動態連接庫的使用251

13.3.1隱式連接方式251

13.3.2顯式連接方式251

本章小結253

習題13253第14章組件對象模型基礎254

14.1組件對象模型概述254

14.1.1軟件模塊化的發展歷程254

14.1.2組件對象模型261

14.1.3COM術語261

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

14.3COM規定的標準服務263

14.3.1接口IUnknown 263

14.3.2接口IClassFactory和IDispatch 266

14.4COM接口的二進制標準及IDL268

14.5使用ATL設計組件268

14.5.1ATL對COM的支持268

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

14.5.3瀏覽ATL生成的代碼271

14.6組件的包含與聚合274

14.6.1包含274

14.6.2聚合275

本章小結275

習題14276第15章ActiveX應用基礎277

15.1ActiveX技術概述277

15.1.1ActiveX的前身——OLE277

15.1.2ActiveX技術的緣起279

15.1.3ActiveX自動化279

15.1.4ActiveX控件280

15.1.5ActiveX文檔280

15.1.6ActiveX文檔與ActiveX控件的區別281

15.2用MFC設計ActiveX容器281

15.2.1ActiveX容器的結構281

15.2.2用MFC設計ActiveX容器282

15.3用MFC設計ActiveX服務器284

15.4用MFC設計ActiveX自動化應用程序285

15.4.1用MFC設計ActiveX自動化服務器285

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

15.5用MFC設計ActiveX控件290

本章小結293

習題15293第16章用MFC設計數據庫應用程序294

16.1數據庫系統及數據庫應用程序294

16.1.1數據庫系統294

16.1.2數據庫應用系統的設計294

16.2ODBC的基本構成295

16.3配置ODBC數據源296

16.3.1ODBC管理器 296

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

16.4MFC的ODBC類299

16.4.1CDatabase類299

16.4.2CRecordset類301

16.4.3CDBException類304

16.5ODBC應用程序實例305

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

16.5.2連接兩個表309

16.6使用DAO設計數據庫應用程序簡介310

16.6.1DAO簡介310

16.6.2DAO和MFC310

16.6.3使用MFC DAO類編程311

本章小結312

習題16312第17章異常和異常處理313

17.1異常處理的基本思想313

17.2異常對象316

17.3MFC的異常類317

17.3.1CException類317

17.3.2CException類的子類317

本章小結318

習題17319第18章.NET和C#320

18.1.NET及.NET Framework和.NET Core320

18.1.1.NET的出現320

18.1.2.NET與.NET Framework概覽321

18.1.3高級語言編譯器與CLR中的即時編譯器322

18.1.4開發語言和開發工具322

18.1.5托管代碼的概念322

18.1.6程序集323

18.1.7真正跨平臺的.NET Core327

18.2C#327

18.2.1C#的特點328

18.2.2C#的值類型和引用類型330

18.2.3C#的數據類型轉換331

18.2.4C#泛型332

18.2.5推斷類型var334

18.2.6C#的控制臺輸出和輸入334

18.2.7類335

18.2.8類的繼承336

18.2.9C#的多態性337

18.2.10接口、抽象類及其作用338

18.3委托、匿名方法、Lambda表達式341

18.3.1委托的定義和使用341

18.3.2委托與匿名方法342

18.3.3委托與Lambda表達式342

18.3.4泛型委托343

18.4C#類的特殊方法344

18.4.1事件344

18.4.2屬性349

18.4.3索引器351

18.5foreach循環、IEnumerable接口與集合類對象353

本章小結356

習題18357第19章C#的幾個重要機制與特性359

19.1反射機制359

19.1.1Type對象及其使用359

19.1.2對目標程序集的反射362

19.2特性366

19.2.1特性是一種特殊類型對象366

19.2.2系統預定義特性368

19.2.3自定義特性371

19.3擴展方法375

19.4Linq簡介377

19.4.1Linq系統設計思想377

19.4.2Linq to Object與統一查詢語言378

19.4.3Linq的兩種查詢語法379

19.5C#的動態特性385

19.5.1dynamic類型385

19.5.2動態行為的實現386

本章小結392

習題19392參考文獻395附錄A數據類型與Windows句柄396

A.1簡單數據類型396

A.2結構數據類型397

A.3句柄398附錄B標識符的匈牙利記法399附錄CMFC的消息映射400

C.1三類消息400

C.2消息映射表項結構AFX_MSGMAP_ENTRY400

C.3在類聲明文件中聲明消息映射401

C.4在類實現文件中實現消息映射402附錄D文檔/視圖框架的補充內容405

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

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

D.3文檔類CDocument的代碼407附錄E多文檔/視圖框架的一個實例410

E.1創建工程410

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

E.3添加位圖文檔模板412附錄F類信息表與CObject類415

F.1類信息表415

F.2CObject類對RTTI的支持416

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

F.4CObject對提供程序調試診斷信息的支持416附錄GVisual C++中文件類型本章小結418