內容簡介
《21天學通Visual C++(第4版)》共21章,從Visual C++的基礎入手,由淺入深,逐步介紹了使用Visual C++進行Windows程式設計的各個方面。在Visual C++的高級套用部分,詳細介紹了使用Visual C++進行資料庫編程、網路編程、執行緒技術的實現、動態程式庫的實現和ActiveX技術的實現,基本涵蓋了Visual C++的功能。
《21天學通Visual C++(第4版)》內容豐富,深度和廣度兼顧。可以作為初學者的入門指南,也可以幫助中高級讀者進一步提高編程水平。此外,也可作為讀者學習面向對象程式設計的參考書。
目錄
第1 篇 Visual C++ 基礎篇
第1章 Visual C++ 6.0概述 1
1.1 Visual C++ 6.0簡介 1
1.1.1 Visual C++ 6.0的特點 1
1.1.2 Visual C++ 6.0的版本種類和硬體環境 2
1.2 Visual C++ 6.0集成開發環境概覽 2
1.2.1 工作區 3
1.2.2 編輯區 3
1.2.3 輸出視窗 4
1.3 Visual C++ 6.0集成開發環境選單簡介 4
1.4 Visual C++ 6.0的工具組件 5
1.4.1 C/C++編譯器 5
1.4.2 資源編輯器和資源編譯器 6
1.4.3 連結器和調試器 6
1.4.4 應用程式嚮導 6
1.4.5 類嚮導 7
1.4.6 資源瀏覽器 8
1.5 第一個Visual C++程式——“Hello World” 9
1.5.1 使用應用程式嚮導創建工程 9
1.5.2 添加並修改訊息處理函式 11
1.5.3 編譯、連結和運行 12
1.6 Visual C++ 6.0項目檔案類型簡介 12
1.7 小結 13
1.8 習題 13
第2章 Windows應用程式框架 18
2.1 基於Windows的應用程式設計 18
2.1.1 基於Windows的應用程式接口(API) 18
2.1.2 句柄的原理 19
2.1.3 Windows應用程式入口——WinMain()函式 20
2.1.4 訊息及訊息佇列機制 20
2.2 MFC的基本概念及應用程式框架 21
2.2.1 MFC的基本概念 22
2.2.2 使用應用程式嚮導創建MFC應用程式框架 23
2.3 MFC應用程式框架詳解 27
2.3.1 應用程式類 28
2.3.2 框架類 29
2.3.3 視圖類和文檔類 29
2.4 小結 30
2.5 習題 31
第2 篇 可視化編程篇
第3章 常用控制項 33
3.1 控制項的基本概念 33
3.2 Visual C++ 6.0中的控制項 33
3.2.1 靜態文本控制項 35
3.2.2 編輯框控制項 38
3.2.3 按鈕控制項 39
3.2.4 列表框控制項 41
3.2.5 組合框控制項 41
3.2.6 滾動條控制項 43
3.3 控制項的套用 43
3.3.1 添加控制項到應用程式界面中 44
3.3.2 多個控制項的排列布局 44
3.4 控制項套用實例 45
3.5 小結 49
3.6 習題 49
第4章 對話框 51
4.1 對話框概述 51
4.1.1 對話框的組成 52
4.1.2 對話框的種類 52
4.1.3 對話框的編輯器 53
4.1.4 對話框的屬性 54
4.2 創建對話框 55
4.2.1 添加對話框資源 55
4.2.2 添加控制項 56
4.2.3 使用類嚮導創建對話框類 56
4.2.4 使用類嚮導添加成員變數 58
4.2.5 添加訊息處理函式 61
4.3 模態對話框和非模態對話框 62
4.3.1 構建主程式框架 62
4.3.2 創建非模態對話框 65
4.3.3 對話框的輸入/輸出——數據交換機制 67
4.3.4 創建模態對話框 68
4.4 小結 69
4.5 習題 69
第5章 訊息處理與類嚮導的使用 72
5.1 訊息的種類 72
5.1.1 來自鍵盤的訊息 72
5.1.2 來自滑鼠的訊息 73
5.1.3 來自視窗的訊息 73
5.1.4 來自焦點的訊息 74
5.1.5 定時器訊息 75
5.1.6 命令訊息 75
5.2 使用訊息機制的套用實例 76
5.3 類嚮導的使用 79
5.3.1 啟動類嚮導 79
5.3.2 使用類嚮導添加訊息處理函式 79
5.3.3 添加成員變數 82
5.3.4 添加新類 83
5.4 小結 85
5.5 習題 85
第6章 選單 87
6.1 Windows的應用程式選單概述 87
6.1.1 選單的種類 87
6.1.2 使用Visual C++ 6.0生成的選單 88
6.2 創建選單的操作方法 89
6.2.1 添加選單資源 89
6.2.2 利用選單編輯器編輯選單資源 90
6.2.3 將選單添加到應用程式中 93
6.2.4 添加訊息處理函式 94
6.3 選單的程式設計 97
6.3.1 在程式中獲取選單信息 97
6.3.2 在程式中修改選單狀態 98
6.3.3 在程式中添加、刪除、插入選單或選單項 101
6.4 快捷選單——彈出式選單 103
6.4.1 手動創建快捷選單 103
6.4.2 使用組件創建快捷選單 104
6.5 小結 106
6.6 習題 106
第7章 工具列與狀態欄 110
7.1 工具列介紹 110
7.1.1 工具列類——CToolBar 111
7.1.2 創建工具列 111
7.1.3 使用工具列編輯器設計工具列按鈕 114
7.2 創建工具列 116
7.2.1 添加工具列資源 116
7.2.2 設計工具列按鈕 116
7.2.3 將工具列添加到應用程式 117
7.3 顯示/隱藏工具列 119
7.4 狀態欄 123
7.4.1 狀態欄介紹 123
7.4.2 狀態欄類——CStatusBar 123
7.4.3 創建狀態欄 124
7.5 修改狀態欄 125
7.5.1 指示器數組 126
7.5.2 修改狀態欄 126
7.6 小結 127
7.7 習題 127
第3 篇 Visual C++ 套用篇
第8章 圖形 130
8.1 圖形設備接口的基本原理 130
8.2 設備描述表的概念及使用 130
8.2.1 設備描述表概述 131
8.2.2 獲取設備描述表 131
8.3 Windows的圖形設備接口類 132
8.4 GDI對象的創建 133
8.4.1 自定義畫刷類(CBrush) 133
8.4.2 自定義畫筆類(CPen) 134
8.5 畫筆類的使用 134
8.5.1 使用畫筆類對象進行畫線 135
8.5.2 改進畫線功能 137
8.6 畫刷類的使用 140
8.6.1 使用帶顏色的畫刷對象 140
8.6.2 使用帶點陣圖的畫刷對象 142
8.7 小結 145
8.8 習題 145
第9章 文本與字型 148
9.1 文本編程簡介 148
9.1.1 文本編程的基本概念 148
9.1.2 使用GDI類自定義字型對象 149
9.2 字型的使用 150
9.2.1 實現簡單文字處理 150
9.2.2 特殊字元的處理 153
9.2.3 具有顏色的文本套用實例 156
9.3 小結 160
9.4 習題 160
第10章 文檔視圖結構 163
10.1 文檔視圖結構概述 163
10.1.1 文檔和視圖的基本原理 163
10.1.2 基於文檔視圖結構的應用程式 164
10.1.3 基於文檔視圖結構的程式的組成部分 164
10.1.4 框架視窗 165
10.2 文檔/視圖類的關聯函式 166
10.2.1 視圖類中的獲取文檔函式——GetDocument() 166
10.2.2 文檔視圖類其他常用的關聯函式 167
10.3 單文檔視圖結構的應用程式 168
10.3.1 單文檔視圖結構的應用程式概述 168
10.3.2 創建單文檔視圖應用程式 169
10.4 多文檔視圖結構的應用程式 171
10.4.1 多文檔視圖結構的應用程式概述 171
10.4.2 創建多文檔視圖應用程式 172
10.5 小結 174
10.6 習題 174
第11章 檔案 180
11.1 檔案的基本概念 180
11.1.1 檔案與輸入/輸出流 180
11.1.2 檔案的內容與種類 181
11.2 常見的檔案操作 181
11.2.1 打開和關閉順序檔案 181
11.2.2 順序檔案的讀/寫操作 183
11.2.3 順序檔案讀/寫操作套用實例 183
11.3 MFC中的CFile類 188
11.3.1 CFile類的成員函式詳解 189
11.3.2 使用CFile類對象打開檔案 189
11.3.3 使用CFile類對象讀/寫檔案 190
11.3.4 使用CFile類對象關閉檔案 190
11.4 檔案輸入/輸出的實現實例 191
11.5 “打開”和“保存”對話框 194
11.5.1 創建“打開”對話框 194
11.5.2 創建“保存”對話框 197
11.6 小結 198
11.7 習題 198
第12章 文檔序列化與註冊表操作 202
12.1 什麼是文檔序列化 202
12.2 文檔序列化的實例 203
12.2.1 實現簡單繪圖功能的實例 204
12.2.2 添加可序列化的類 206
12.2.3 重載Serialize()函式 207
12.2.4 加入宏 208
12.2.5 構造圖形類CGraph 208
12.2.6 保存圖形 209
12.2.7 完成繪圖功能 210
12.2.8 以序列化方式保存圖形 211
12.3 註冊表的操作 213
12.3.1 註冊表簡介 213
12.3.2 註冊表的結構 214
12.3.3 讀/寫註冊表 215
12.4 小結 218
12.5 習題 218
第13章 應用程式界面設計 221
13.1 修改應用程式外觀樣式 221
13.1.1 在框架類中修改程式外觀 221
13.1.2 在視圖類中修改程式外觀 224
13.2 製作動畫效果的圖示 225
13.3 設定背景圖片 227
13.4 小結 232
13.5 習題 233
第14章 面向對象程式設計基礎 235
14.1 面向對象技術概覽 235
14.1.1 面向對象技術的基本概念和特點 235
14.1.2 面向對象程式設計語言的演化 236
14.2 類對象和類 236
14.2.1 類對象 237
14.2.2 類 237
14.3 對象的屬性和方法 239
14.3.1 對象的屬性 239
14.3.2 對象的方法 239
14.4 封裝、繼承和多態 240
14.4.1 封裝 240
14.4.2 繼承 241
14.4.3 多態 242
14.5 使用Visual C++6.0進行面向對象程式設計 242
14.5.1 類類型的定義 243
14.5.2 類的實例化使用 244
14.5.3 函式的多態形式——重載 246
14.5.4 類的構造函式 248
14.5.5 類的析構函式 249
14.5.6 指向當前對象的指針——this指針 250
14.5.7 類的繼承 251
14.5.8 虛函式與多態性 255
14.6 小結 255
14.7 習題 256
第4 篇 Visual C++ 開發篇
第15章 資料庫應用程式開發 258
15.1 資料庫基礎理論簡介 258
15.1.1 關係型資料庫 258
15.1.2 資料庫結構化查詢語言 259
15.2 資料庫訪問技術介紹 259
15.2.1 使用Visual C++ 6.0開發資料庫技術的特點 260
15.2.2 使用Visual C++ 6.0開發資料庫的接口 260
15.3 使用ODBC進行資料庫應用程式開發 260
15.3.1 ODBC技術概述 260
15.3.2 添加ODBC數據源 262
15.4 與ODBC兼容的MFC類 264
15.4.1 CDatabase類及其使用方法 264
15.4.2 CRecordSet類及其使用方法 265
15.4.3 CRecordView類 267
15.5 套用ODBC進行資料庫套用編程 267
15.5.1 生成一個ODBC應用程式框架 267
15.5.2 資料庫中的記錄查詢 269
15.5.3 為資料庫增加記錄 271
15.5.4 修改資料庫記錄 271
15.5.5 刪除資料庫記錄 271
15.6 ADO簡介 271
15.6.1 ADO技術概述 272
15.6.2 ADO中的對象 272
15.7 使用ADO進行資料庫應用程式設計 273
15.7.1 導入ADO DLL 274
15.7.2 初始化ADO開發環境 274
15.7.3 使用ADO連線資料庫 275
15.7.4 使用ADO函式執行資料庫查詢命令 278
15.7.5 訪問資料庫中的數據 279
15.7.6 運算元據 280
15.7.7 關閉資料庫連線 280
15.8 套用ADO編程的實例 281
15.9 小結 284
15.10 習題 284
第16章 網路編程 287
16.1 一個簡單的網路編程實例 287
16.2 Socket套接字及使用 290
16.2.1 Socket套接字概述 290
16.2.2 創建Socket套接字對象 291
16.2.3 使用套接字對象建立連線 291
16.2.4 傳送數據和監聽數據 292
16.2.5 數據接收 293
16.2.6 關閉套接字 293
16.3 基於Windows系統的套接字編程機制 294
16.3.1 Windows Sockets簡介 294
16.3.2 WinSock編程原理及步驟 294
16.3.3 使用WinSock編程的實例 295
16.4 小結 299
16.5 習題 299
第17章 執行緒與進程程式設計 303
17.1 進程和執行緒的基本概念 303
17.2 MFC的執行緒處理機制 304
17.2.1 MFC執行緒處理機制概述 304
17.2.2 創建工作者執行緒 304
17.2.3 創建用戶界面的執行緒 305
17.3 執行緒的同步 309
17.3.1 執行緒同步簡介 309
17.3.2 執行緒同步的實現 309
17.4 進程之間的通信 313
17.4.1 剪貼簿操作的常用函式 313
17.4.2 剪貼簿操作的通信實例 314
17.5 小結 316
17.6 習題 317
第18章 動態程式庫開發 319
18.1 一個簡單的動態程式庫實例 319
18.2 動態程式庫詳解 322
18.2.1 靜態程式庫與動態程式庫 322
18.2.2 運行與查看動態程式庫 323
18.3 Win32 DLL的創建和使用 324
18.4 MFC規則DLL的創建 325
18.4.1 MFC規則DLL簡介 325
18.4.2 MFC規則的DLL創建 325
18.5 小結 329
18.6 習題 329
第19章 ActiveX應用程式設計 334
19.1 ActiveX技術簡介 334
19.2 ActiveX控制項詳解 334
19.2.1 ActiveX控制項與普通的Windows控制項 335
19.2.2 ActiveX控制項的屬性 335
19.2.3 ActiveX控制項的方法 336
19.2.4 ActiveX控制項的事件 337
19.3 創建ActiveX控制項 337
19.3.1 創建ActiveX控制項應用程式外殼 337
19.3.2 添加OnDraw()函式代碼 341
19.3.3 實現ActiveX控制項與系統時間同步 342
19.4 ActiveX控制項的高級套用 344
19.4.1 添加背景色屬性 344
19.4.2 添加ActiveX的方法 347
19.4.3 添加ActiveX事件 349
19.5 小結 351
19.6 習題 351
第20章 Visual C++ 6.0的調試技術 354
20.1 Visual C++ 6.0的調試方法 354
20.1.1 錯誤種類 354
20.1.2 設定調試環境 355
20.1.3 設定調試斷點 356
20.1.4 控制調試中的程式運行 359
20.2 使用調試信息查看工具 360
20.2.1 調試信息泡泡 360
20.2.2 變數視窗 360
20.2.3 觀察視窗 361
20.2.4 快速查看變數視窗 361
20.3 高級調試技術 362
20.3.1 使用TRACE宏輸出調試信息 362
20.3.2 使用斷言輸出錯誤信息 363
20.3.3 自建類的Dump()函式 364
20.3.4 檢查記憶體泄漏 364
20.4 調試的套用實例 365
20.5 小結 368
20.6 習題 368
第5 篇 案例篇
第21章 綜合案例 370
21.1 系統功能概述 370
21.2 系統功能的具體實現 371
21.2.1 創建資料庫 371
21.2.2 添加ODBC類型的數據源 372
21.2.3 創建應用程式工程 373
21.2.4 設計軟體用戶界面 375
21.3 實現成績瀏覽功能的操作 377
21.3.1 添加成員變數 377
21.3.2 添加成員函式 378
21.3.3 添加函式程式代碼 379
21.3.4 編譯並運行 380
21.4 實現添加成績的功能 381
21.5 實現刪除成績的功能 382
21.6 實現成績查詢的功能 384
21.7 小結 386
作者簡介
本書作者團隊成員為一線開發工程師、資深編程專家或專業培訓師,在編程開發方面有著豐富的經驗,並已出版過多本相關暢銷書,頗受廣大讀者認可。長期積累的開發實戰經驗,結合對編程入門愛好者需求與特點的深入調查研究,本書的內容結構十分有利於編程愛好者和相關學員快速提高水平。