內容簡介
想學習Visual C++嗎?相信《零基礎學 Visual C++(第2版)》是你的最佳選擇之一。《零基礎學 Visual C++(第2版)》作者具有近10年的Visual C++工程開發和圖書寫作經驗,結合自身學習Visual C++的經歷以及工程開發中所走過的彎路和獲取的經驗編寫了這本Visual C++基礎書籍。
《零基礎學 Visual C++(第2版)》力求從Visual C++初學者的角度開發,使初學者能夠最快地掌握Visual C++程式設計的精髓而少走彎路。《零基礎學 Visual C++(第2版)》對Visual C++的每個知識點的講解均採用最基本、最常用的方案實現,並輔以簡單易懂而貼近工程套用的實例來闡明。對使用的MFC類,只詳細介紹工程項目中常用的成員函式的使用,其他成員函式則忽略。雖然是基礎書,但對於Visual C++程式框架的建立及總體的運行機制還是作了詳細的介紹,因為只有掌握了這些,才便於以後的進階提高。
全書分為四篇,共15章,內容涵蓋C++及Visual C++程式框架,Visual C++的基本開發要素,如鍵盤、滑鼠、工具列、狀態欄、通用控制項、設備描述表以及MFC通用類,對話框、檔案/視圖結構程式以及DLL的開發,多執行緒程式設計,網路編程以及資料庫開發等。
《零基礎學 Visual C++(第2版)》作為Visual C++ 6.0的基礎教程,適合於Visual C++的初學者,特別是大中專院校剛學習完C++語言的低年級學生。
圖書目錄
出版說明
前言
第一篇 Visual C++與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開發環境 4
1.1.3 Visual C++ 6.0應用程式嚮導和項目創建 5
1.2 Visual C++ 6.0簡介 7
1.2.1 C/C++編譯器 7
1.2.2 編輯器 7
1.2.3 資源編輯器和資源符號 8
1.2.4 連線器和調試器 8
1.2.5 Visual C++ 6.0的主要選單項功能 9
1.2.6 項目和解決方案 14
1.2.7 本機幫助和在線上幫助 14
1.3 Win32基本應用程式的創建 15
1.3.1 使用AppWizard應用程式嚮導 15
1.3.2 Win32應用程式的生成 16
1.3.3 Visual C++ 6.0的調試:變數跟蹤和函式調用棧 19
1.4 Microsoft應用程式框架 21
1.4.1 全局對象 21
1.4.2 MFC的訊息映射和訊息分類 21
1.5 實例:編寫第一個C++程式—Hello, C++! 21
1.6 實例:創建第一個MFC程式—Hello, MFC! 24
1.7 小結 24
1.8 本章練習 24
第2章 C++語法基礎 25
2.1 C++簡介 25
2.2 數據類型定義和使用 26
2.2.1 簡單變數 26
2.2.2 算術運算符 29
2.2.3 枚舉、指針和數組 31
2.2.4 string類和C風格字元串 33
2.2.5 結構體類型 35
2.2.6 類類型 36
2.2.7 實例:成績管理系統(1.0版) 39
2.3 運算符、表達式和語句 43
2.3.1 幾種常用的運算符 43
2.3.2 循環語句:for語句、while語句和do...while語句 45
2.3.3 判斷語句:if語句和switch語句 46
2.3.4 實例:成績管理系統(2.0版) 49
2.4 函式定義和調用 53
2.4.1 定義函式和函式原型 53
2.4.2 函式通過指針來調用數組 54
2.4.3 函式指針 54
2.4.4 具有引用參數的函式 55
2.4.5 函式重載 58
2.4.6 函式模板的定義和使用 59
2.4.7 實例:成績管理系統(3.0版) 60
2.5 類的定義和對象構造 62
2.5.1 自然界中的類型和C++的類定義 63
2.5.2 實現類成員函式 64
2.5.3 實例化類對象並使用 66
2.5.4 類的構造函式和析構函式 67
2.5.5 運算符重載與this指針的使用 69
2.5.6 友元函式和友元類 70
2.5.7 實例:成績管理系統(4.0版) 73
2.6 類繼承 77
2.6.1 is-a關係 77
2.6.2 多態公有繼承 79
2.6.3 protected訪問控制 81
2.6.4 抽象基類 82
2.6.5 私有繼承和保護繼承 83
2.6.6 多繼承 83
2.6.7 類模板 84
2.7 C++異常機制 85
2.7.1 異常處理類型 85
2.7.2 exception類 87
2.8 標準模板庫(STL) 87
2.8.1 auto_ptr類的使用 87
2.8.2 vector模板類的定義和使用 88
2.8.3 通用算法 89
2.8.4 實例:使用STL和通用算法開發成績管理系統(5.0版) 91
2.9 I/O流和檔案 95
2.9.1 C++的輸入和輸出 96
2.9.2 檔案輸入和輸出 96
2.9.3 實例:在Visual C++ 6.0創建C++源檔案,使用磁碟檔案讀寫 97
2.10 小結 98
2.11 本章練習 98
第3章 Windows編程與MFC基礎 99
3.1 Windows編程基礎 99
3.1.1 Windows API函式 99
3.1.2 視窗與句柄 99
3.1.3 事件與訊息 100
3.1.4 常用的Windows數據類型 100
3.2 Windows應用程式分析 101
3.2.1 WinMain函式 102
3.2.2 創建視窗 102
3.2.3 訊息循環 103
3.2.4 WinProc視窗函式 104
3.2.5 Windows編程實例 105
3.3 MFC基礎 107
3.3.1 MFC概述 107
3.3.2 MFC基礎類及其層次結構 107
3.3.3 MFC中的全局函式 109
3.4 MFC應用程式框架分析 109
3.4.1 入口函式 109
3.4.2 應用程式對象 110
3.4.3 InitInstance函式 111
3.4.4 Run函式 112
3.4.5 MFC的訊息映射 114
3.4.6 MFC訊息分類 114
3.5 小結 116
3.6 本章練習 116
第二篇 Visual C++常用類、控制項和資源
第4章 基本輸入—鍵盤和滑鼠訊息 117
4.1 鍵盤訊息及其處理 117
4.1.1 鍵盤訊息 117
4.1.2 鍵盤訊息處理 118
4.1.3 按鍵訊息的處理 118
4.1.4 按鍵訊息處理函式 120
4.1.5 字元訊息的處理 122
4.1.6 創建鍵盤插入符 125
4.2 滑鼠訊息及其處理 128
4.2.1 滑鼠訊息 128
4.2.2 滑鼠訊息處理函式 128
4.2.3 滑鼠訊息處理實例 129
4.2.4 滑鼠游標的創建與使用 132
4.2.5 捕捉滑鼠 133
4.2.6 鎖定滑鼠的作用區域 134
4.3 小結 135
4.4 本章練習 135
第5章 選單、工具列和狀態欄編程 136
5.1 選單及其相關資源的使用 136
5.1.1 選單的種類及開發步驟 136
5.1.2 選單的創建與編輯 137
5.1.3 選單訊息 139
5.1.4 選單命令訊息的處理 139
5.1.5 選單更新訊息的處理 141
5.1.6 為選單項設定快捷鍵 143
5.1.7 彈出選單的創建與使用 145
5.2 工具列的使用 148
5.2.1 工具列的創建 148
5.2.2 編輯工具列 150
5.2.3 工具列命令處理 151
5.2.4 工具列類CToolBar的簡單介紹 151
5.3 狀態欄的使用 152
5.3.1 狀態欄的創建 152
5.3.2 狀態欄編程 153
5.3.3 狀態欄類CStatusBar的簡單介紹 156
5.4 小結 157
5.5 本章練習 157
第6章 使用Windows標準控制項 158
6.1 Windows標準控制項 158
6.1.1 Windows控制項簡介 159
6.1.2 使用對話框編輯器創建控制項 159
6.1.3 控制項類的基類CWnd 162
6.1.4 控制項的訊息及其處理 163
6.2 按鈕控制項 163
6.2.1 按鈕控制項簡介 163
6.2.2 按鈕控制項類CButton 164
6.2.3 按鈕控制項的屬性與訊息 165
6.2.4 按鈕狀態的確定 166
6.2.5 按鈕控制項使用實例 167
6.3 靜態控制項與編輯控制項 171
6.3.1 靜態控制項的創建與使用 171
6.3.2 靜態控制項類CStatic 172
6.3.3 編輯控制項的創建 173
6.3.4 編輯控制項類CEdit 174
6.3.5 編輯控制項的訊息 175
6.3.6 編輯控制項的套用實例 176
6.4 列表框控制項和組合框控制項 178
6.4.1 列表框控制項的創建 178
6.4.2 列表框控制項類CListBox 179
6.4.3 列表框控制項的訊息 180
6.4.4 列表框控制項實例 180
6.4.5 組合框控制項的創建 183
6.4.6 組合框控制項類CComboBox 184
6.4.7 組合框控制項的訊息 185
6.5 微調控制項、滑塊控制項和進度條 185
6.5.1 微調控制項的創建 186
6.5.2 微調控制項的使用 186
6.5.3 滑塊控制項的創建 188
6.5.4 滑塊控制項的使用 188
6.5.5 進度條控制項的創建及使用 190
6.5.6 微調控制項、滑塊控制項和進度條編程實例 191
6.6 列表視圖控制項和樹形視圖控制項 192
6.6.1 列表視圖控制項的創建 193
6.6.2 列表視圖控制項類CListCtrl 194
6.6.3 列表視圖控制項的通知訊息 196
6.6.4 樹形視圖控制項的創建 196
6.6.5 樹形視圖控制項類CTreeCtrl 197
6.6.6 樹形視圖控制項的訊息 199
6.6.7 列表視圖和樹形視圖編程實例 199
6.7 ActiveX控制項的使用 203
6.7.1 ActiveX控制項的結構 203
6.7.2 Visual C++中的組件和控制項庫 204
6.7.3 MFC程式中ActiveX控制項的使用 205
6.7.4 ActiveX控制項使用實例 206
6.8 小結 210
6.9 本章練習 210
第7章 MFC常用的通用類 211
7.1 字元串類(CString) 211
7.1.1 CString對象的創建 211
7.1.2 CString類的成員函式 211
7.1.3 CString類的常用操作 212
7.1.4 CString的格式化與類型轉換 215
7.2 MFC的集合類 216
7.2.1 數組類 216
7.2.2 數組類的使用實例 217
7.2.3 鍊表類 219
7.2.4 鍊表類的使用實例 221
7.3 日期、時間類 223
7.3.1 CTime類 223
7.3.2 CTime對象的格式化 224
7.3.3 CTimeSpan類 225
7.3.4 計時器的使用 226
7.4 MFC檔案操作類(CFile) 227
7.4.1 構造檔案對象並打開檔案 227
7.4.2 檔案的讀寫操作 228
7.4.3 檔案的定位操作 229
7.4.4 檔案的管理操作 230
7.4.5 使用CFile類進行檔案操作實例 231
7.5 MFC異常類 233
7.5.1 MFC異常類簡介 233
7.5.2 檔案異常類CFileException 234
7.5.3 異常的捕獲 235
7.6 小結 237
7.7 本章練習 237
第8章 文本、圖形輸出 238
8.1 基礎知識 238
8.1.1 GDI繪圖的實現 238
8.1.2 MFC圖形對象類 239
8.1.3 庫存GDI對象 240
8.1.4 與圖形繪製有關的簡單數據類型 240
8.1.5 MFC應用程式框架中的圖形繪製與刷新 242
8.2 MFC設備描述表(CDC類) 243
8.2.1 CDC及其派生類 243
8.2.2 文本輸出 245
8.2.3 CDC的常用繪圖函式 247
8.3 使用畫筆和畫刷進行繪圖 249
8.3.1 畫筆對象及其使用 249
8.3.2 使用畫筆繪圖實例 250
8.3.3 畫刷對象及其使用 251
8.3.4 使用畫刷繪圖實例 252
8.4 字型對象 254
8.4.1 字型對象的創建 255
8.4.2 獲取字型信息 257
8.4.3 字型對象使用實例 257
8.5 點陣圖和區域對象 258
8.5.1 設備相關點陣圖(DDB) 258
8.5.2 CBitmap套用實例 260
8.5.3 設備無關點陣圖(DIB) 261
8.5.4 區域對象(CRgn) 262
8.5.5 CRgn套用實例 263
8.6 坐標系統與映射模式 265
8.6.1 坐標系統 265
8.6.2 映射模式 265
8.6.3 自定義映射模式 266
8.6.4 坐標映射使用實例 267
8.7 小結 268
8.8 本章練習 269
第三篇 Visual C++基本應用程式開發
第9章 文檔/視圖結構的應用程式開發 271
9.1 文檔/視圖結構 271
9.1.1 文檔/視圖結構概述 271
9.1.2 文檔/視圖結構的分類 272
9.2 文檔/視圖結構應用程式框架分析 273
9.2.1 利用AppWizard創建單文檔程式框架 273
9.2.2 程式框架中的主要類及相互關係 276
9.2.3 文檔類、視圖類核心函式及作用 278
9.2.4 新建、保存和打開的實現 279
9.2.5 多文檔應用程式框架 280
9.3 文檔/視圖結構應用程式的開發 282
9.3.1 實現目標 282
9.3.2 創建基本的程式框架 282
9.3.3 創建文檔數據 284
9.3.4 在視圖類中實現繪圖操作 284
9.3.5 文檔的序列化 287
9.3.6 對例程數據進行序列化 291
9.3.7 讓文檔程式支持滾動條 294
9.4 視窗分割與多視圖 296
9.4.1 視窗分割基礎知識 296
9.4.2 動態分割視窗的實現 298
9.4.3 靜態分割視窗與多視圖的實現 300
9.5 小結 303
9.6 本章練習 303
第10章 對話框的套用 304
10.1 對話框的工作方式、種類和創建方法 304
10.1.1 對話框在應用程式中的工作方式.. 304
10.1.2 對話框的種類 304
10.1.3 對話框模板的創建與編輯 305
10.2 對話框與程式連線 308
10.2.1 創建對話框類 308
10.2.2 為對話框類添加成員變數 309
10.2.3 對話框數據交換與驗證 310
10.2.4 對話框控制項通知訊息的處理 312
10.3 對話框的創建與顯示 314
10.3.1 創建模態對話框 314
10.3.2 創建非模態對話框 315
10.3.3 非模態對話框創建實例 316
10.3.4 基於對話框的應用程式 321
10.4 屬性表對話框 323
10.4.1 屬性表對話框的創建 324
10.4.2 屬性表對話框的運行機制 327
10.5 訊息對話框與公用對話框 328
10.5.1 訊息對話框 329
10.5.2 顏色對話框 331
10.5.3 檔案對話框 332
10.5.4 字型對話框 333
10.5.5 查找、替換對話框 335
10.5.6 列印對話框 337
10.5.7 公用對話框使用實例 339
10.6 小結 344
10.7 本章練習 344
第11章 動態程式庫編程 345
11.1 基本概念 345
11.1.1 動態程式庫的概念 345
11.1.2 動態程式庫的優點 346
11.1.3 Visual C++ 6.0可開發的DLL 347
11.1.4 DLL檔案的組成 347
11.2 DLL的創建與調用 348
11.2.1 Win32 DLL的創建 348
11.2.2 DLL的導出 349
11.2.3 應用程式連結DLL 350
11.3 MFC常規DLL的創建與使用 354
11.3.1 基本概念 354
11.3.2 MFC常規DLL的創建 355
11.3.3 MFC常規DLL創建實例 355
11.3.4 MFC常規DLL的調用 357
11.4 MFC擴展DLL的創建與使用 359
11.4.1 MFC擴展DLL的創建 359
11.4.2 MFC擴展DLL的創建實例 360
11.4.3 MFC擴展DLL的調用 363
11.5 DLL的查看與調試 364
11.5.1 使用Depends工具查看DLL接口 364
11.5.2 DLL的調試 365
11.6 小結 366
11.7 本章練習 366
第四篇 Visual C++應用程式開發進階
第12章 多執行緒程式開發 367
12.1 多執行緒的引入 367
12.1.1 單執行緒程式的不足 367
12.1.2 問題的解決 368
12.2 多執行緒編程的基礎知識 368
12.2.1 進程和執行緒 368
12.2.2 Spy++工具 369
12.2.3 Win32 API對多執行緒編程的支持 369
12.2.4 MFC對多執行緒編程的支持 373
12.3 多執行緒程式開發 376
12.3.1 使用Win32 API函式開多執行緒程式 376
12.3.2 MFC用戶界面執行緒的開發 379
12.3.3 MFC工作者執行緒的開發 383
12.4 執行緒間的通信 383
12.4.1 使用全局變數實現執行緒間的通信 383
12.4.2 使用自定義的訊息實現執行緒間的通信 386
12.5 執行緒的同步 389
12.5.1 等待函式 389
12.5.2 CEvent類實現執行緒同步 390
12.5.3 使用CEvent類實現執行緒同步實例 391
12.5.4 CCriticalSection類實現執行緒同步 394
12.5.5 CCriticalSection類實現執行緒同步實例 395
12.5.6 CSemaphore類實現執行緒同步 398
12.5.7 CSemaphore類實現執行緒同步實例 398
12.6 小結 400
12.7 本章練習 400
第13章 Visual C++網路編程 401
13.1 網路通信及開發基礎 401
13.1.1 TCP/IP協定 401
13.1.2 TCP/IP協定 403
13.1.3 Windows Sockets基礎 403
13.1.4 客戶端/伺服器模式 404
13.2 基本網路通信開發 404
13.2.1 CAsyncSocket類及常用成員函式的使用 404
13.2.2 使用WinSock進行無連線的通信 408
13.2.3 無連線通信實例 409
13.2.4 使用WinSock進行有連線的通信 413
13.2.5 有連線通信實例 413
13.3 網路程式設計與開發 417
13.3.1 網路程式的一些概念 418
13.3.2 Socket事件 418
13.3.3 Socket事件的激發控制 418
13.3.4 Socket信息的獲取與處理 419
13.3.5 網路程式開發實例 421
13.4 WinInet開發Internet客戶端程式 429
13.4.1 MFC WinInet開發包 429
13.4.2 WinInet開發客戶端程式的流程 430
13.4.3 WinInet開發HTTP客戶端程式實例 431
13.5 簡單的Web瀏覽器開發 433
13.5.1 CHtmlView視圖類簡介 433
13.5.2 瀏覽器開發實例 434
13.6 小結 439
13.7 本章練習 439
第14章 Visual C++資料庫編程 440
14.1 資料庫基礎 440
14.1.1 資料庫的基本概念 440
14.1.2 資料庫管理系統(DBMS) 441
14.1.3 結構化查詢語言(SQL) 441
14.2 資料庫開發技術簡介 444
14.2.1 ODBC API/MFC ODBC技術 444
14.2.2 DAO技術 445
14.2.3 ADO技術 445
14.3 在Visual C++中使用ADO開發資料庫應用程式 447
14.3.1 Visual C++對ADO的支持 447
14.3.2 創建資料庫與實例工程 448
14.3.3 引入ADO對象 451
14.3.4 連線數據源 451
14.3.5 開發技術—連線對象(Connection) 452
14.3.6 創建表並添加數據 454
14.3.7 開發技術—ADO對象命令的執行 455
14.3.8 開發技術—Recordset對象 457
14.3.9 遍歷、刪除、編輯記錄的實現 462
14.4 使用ODBC數據源連線資料庫 467
14.4.1 手動實現設定ODBC數據源 467
14.4.2 ADO連線ODBC數據源 468
14.4.3 Visual C++程式實現設定ODBC數據源 469
14.4.4 使用Visual C++程式設定ODBC數據源實例 470
14.5 小結 471
14.6 本章練習 471
第15章 使用Visual C++ 6.0開發家庭財務管理系統 472
15.1 提出問題:設計一個家庭財務管理系統 472
15.1.1 功能概述 472
15.1.2 界面需求 472
15.2 資料庫設計 473
15.2.1 數據關係分析 473
15.2.2 E-R圖設計 474
15.2.3 資料庫表的生成 475
15.3 算法設計 476
15.3.1 連線資料庫 476
15.3.2 添加數據 477
15.3.3 修改資料庫內容 477
15.3.4 統計資料庫信息 478
15.4 軟體項目開發過程 478
15.4.1 開發家庭財務管理系統項目的流程 478
15.4.2 根據E-R圖創建資料庫表 478
15.4.3 功能研發的準備工作 480
15.4.4 實現算法設計 483
15.4.5 測試 486
15.5 小結 487