內容簡介
《Visual C++開發實戰寶典》《Visual C++開發實戰寶典》在各章介紹技術時,都會提供示例或實例,同時在多數章節的結尾安排有綜合套用,通過幾個小型項目綜合套用本章所講解的知識,做到理論聯繫實際。強調只掌握和理解技術,而沒有實際套用,等於沒有掌握技術。最後在《Visual C++開發實戰寶典》的第18~22章提供有5個完整的項目實例,講述從前期規劃、設計流程圖到項目的最終實施整個實現過程。
《Visual C++開發實戰寶典》共分22章,包括Visual C++ 6.0開發環境,程式設計基礎,流程控制,函式,類和對象,對話框程式設計,
MFC通用控制項,MFC高級控制項,選單、工具列和狀態欄設計,文本、圖形圖像處理技術,程式調試,列印技術,檔案操作,
ADO資料庫編程,多執行緒應用程式設計,動態程式庫,網路編程,學生管理系統,人事考勤管理系統,視頻聊天軟體,區域網路監控系統,垃圾檔案清理工具。
《Visual C++開發實戰寶典》適合有志於從事軟體開發的初學者、高校計算機相關專業學生和畢業生,也可作為軟體開發人員的參考手冊,或者高校的教學參考書。
目錄
第1部分 基礎知識
第1章 Visual C++ 6.0開發環境 3
視頻講解:94分鐘
1.1 Visual C++ 6.0概述 4
1.2 熟悉Visual C++ 6.0開發環境 4
1.2.1 選單介紹 5
1.2.2 工具列介紹 13
1.2.3 工作區介紹 14
1.2.4 代碼編輯視窗介紹 16
1.2.5 控制項面板介紹 17
1.2.6 Output(輸出)視窗介紹 18
1.3 定製Visual C++ 6.0開發環境 19
1.3.1 設計自己的工具列視窗 19
1.3.2 調整代碼文本顏色 20
1.3.3 批量注釋 21
1.4 使用MSDN幫助工具 24
1.5 創建工程 25
1.5.1 創建一個簡單的工程 26
1.5.2 設計程式界面 28
1.5.3 為控制項關聯成員變數 29
1.5.4 編寫程式代碼 30
1.5.5 編譯並運行工程 30
1.5.6 發布應用程式 30
1.6 小結 31
第2章 程式設計基礎 33
視頻講解:220分鐘
2.1 程式設計基本要素 34
2.1.1 標識符 34
2.1.2 關鍵字 34
2.1.3 常量 35
2.1.4 變數 36
2.1.5 暫存器變數 37
2.1.6 靜態變數 37
2.1.7 外部變數 38
2.1.8 自動變數 39
2.1.9 注釋 39
2.2 數據類型 41
2.2.1 簡單數據類型 41
2.2.2 布爾類型 43
2.2.3 數組類型 43
2.2.4 枚舉類型 45
2.2.5 結構體類型 47
2.2.6 共用體類型 51
2.2.7 指針類型 51
2.2.8 引用類型 57
2.2.9 類型別名 58
2.3 類型轉換 59
2.3.1 數值類型轉換 59
2.3.2 靜態轉換 60
2.3.3 動態轉換 61
2.3.4 常量轉換 61
2.3.5 重解釋轉換 63
2.3.6 數值類型與字元串之間的轉換 63
2.4 運算符 65
2.4.1 賦值運算符 65
2.4.2 算術運算符 66
2.4.3 關係運算符和邏輯運算符 68
2.4.4 遞增遞減運算符 70
2.4.5 位運算符 71
2.4.6 sizeof運算符 75
2.4.7 new和delete運算符 77
2.4.8 優先權 78
2.5 表達式 79
2.5.1 逗號表達式 79
2.5.2 條件表達式 80
2.6 實戰 80
2.6.1 字元串加密與解密 81
2.6.2 反轉輸出字元串 83
2.6.3 輸出系統日期和時間 84
2.7 小結 86
2.8 實戰練習 86
第3章 流程控制 87
視頻講解:84分鐘
3.1 簡單語句 88
3.2 複合語句 88
3.3 分支語句 90
3.3.1 if條件語句 90
3.3.2 switch分支語句 94
3.4 循環語句 99
3.4.1 for循環語句 99
3.4.2 while循環語句 103
3.4.3 do while循環語句 105
3.5 跳轉語句 106
3.5.1 goto語句 106
3.5.2 return語句 108
3.5.3 exit語句 109
3.6 實戰 110
3.6.1 對數組元素排序 110
3.6.2 統計學生成績的最高分、最低分和平均值 111
3.6.3 解析字元串 113
3.7 小結 114
3.8 實戰練習 114
第4章 函式 115
視頻講解:122分鐘
4.1 函式的定義 116
4.1.1 函式的聲明和定義 116
4.1.2 函式的調用 119
4.2 函式參數 119
4.2.1 默認值參數 119
4.2.2 const參數 120
4.2.3 指針/引用參數 121
4.2.4 數組參數 123
4.2.5 內聯函式 127
4.3 重載函式 127
4.3.1 定義重載函式 127
4.3.2 隱藏重載函式 130
4.4 函式遞歸調用 131
4.5 函式指針 133
4.6 函式模板 135
4.6.1 函式模板套用 135
4.6.2 重載函式模板 136
4.7 作用域和生命期 137
4.7.1 局部作用域 137
4.7.2 全局作用域 139
4.7.3 命名空間 140
4.8 實戰 145
4.8.1 遍歷磁碟目錄 145
4.8.2 數值排序 147
4.9 小結 148
4.10 實戰練習 148
第5章 類和對象 149
視頻講解:243分鐘
5.1 面向對象程式設計 150
5.1.1 面向對象技術產生的背景 150
5.1.2 面向對象的主要特徵 151
5.2 類的定義 151
5.3 類的實例化——對象 153
5.4 構造函式和析構函式 156
5.4.1 構造函式 157
5.4.2 複製構造函式 159
5.4.3 析構函式 161
5.5 特殊的類成員 163
5.5.1 常量成員 163
5.5.2 靜態成員 164
5.5.3 隱藏的this指針 166
5.6 特殊的成員函式 168
5.6.1 內聯成員函式 168
5.6.2 靜態成員函式 170
5.6.3 重載成員函式 172
5.7 類成員指針 174
5.7.1 類成員函式指針 174
5.7.2 類數據成員指針 175
5.8 繼承 176
5.8.1 單繼承 177
5.8.2 虛函式與動態綁定 180
5.8.3 抽象類 183
5.8.4 類型轉換 185
5.8.5 多繼承 187
5.8.6 虛繼承 189
5.9 運算符重載 192
5.9.1 構造函式自動轉換與禁止 192
5.9.2 運算符重載 193
5.10 友元函式和友元類 196
5.11 類域 200
5.12 嵌套類 203
5.13 局部類 205
5.14 類模板 206
5.14.1 套用類模板 206
5.14.2 類模板中的靜態數據成員 212
5.15 異常處理 213
5.15.1 異常捕捉 214
5.15.2 拋出異常 215
5.16 實戰 217
5.16.1 遞歸遍歷二叉樹 218
5.16.2 循環遍歷二叉樹 221
5.17 小結 227
5.18 實戰練習 227
第2部分 技術套用
第6章 對話框程式設計 231
視頻講解:160分鐘
6.1 創建對話框應用程式 232
6.2 創建對話框 233
6.2.1 設計對話框資源 233
6.2.2 創建並顯示對話框 237
6.3 設定對話框屬性 242
6.3.1 使用屬性視窗設定對話框屬性 242
6.3.2 使用代碼設定對話框屬性 247
6.4 對話框布局 249
6.4.1 向對話框中添加控制項 249
6.4.2 調整控制項的Tab鍵順序 250
6.4.3 調整控制項至相同的大小 251
6.4.4 在對話框中對齊控制項 252
6.4.5 排列控制項 254
6.4.6 使用格線線進行界面布局 257
6.4.7 測試對話框布局效果 259
6.5 訪問對話框中的控制項 259
6.5.1 使用類嚮導為控制項關聯變數 259
6.5.2 利用控制項ID獲取控制項視窗指針 263
6.5.3 利用數據交換訪問控制項文本數據 264
6.6 設定對話框和應用程式圖示 266
6.7 添加對話框成員和成員函式 268
6.7.1 添加成員和成員函式 268
6.7.2 添加訊息處理函式 270
6.7.3 手動添加命令訊息處理函式 272
6.8 使用訊息對話框 273
6.9 Windows通用對話框 275
6.9.1 檔案對話框 275
6.9.2 查找/替換對話框 276
6.9.3 “字型”對話框 277
6.9.4 “顏色”對話框 278
6.9.5 “列印”對話框 278
6.10 實戰 279
6.10.1 獲取系統磁碟信息 279
6.10.2 簡單區域網路通信程式 282
6.11 小結 286
6.12 實戰練習 286
第7章 MFC通用控制項 287
視頻講解:71分鐘
7.1 編輯框控制項EditBox 288
7.1.1 獲取/設定編輯框文本 288
7.1.2 設定字型和文本顏色 288
7.1.3 設定密碼框 289
7.1.4 設定唯讀編輯框 290
7.1.5 編輯框多行顯示文本 290
7.2 靜態文本控制項StaticText 291
7.2.1 設定控制項文本 291
7.2.2 回響滑鼠單擊事件 292
7.3 按鈕控制項Button 293
7.3.1 設定按鈕單擊事件 293
7.3.2 設定圖示按鈕 294
7.4 複選框控制項CheckBox 295
7.4.1 設定和取消複選框選中狀態 296
7.4.2 使用複選框統計個人愛好 297
7.5 單選按鈕控制項RadioButton 298
7.5.1 為單選按鈕設定分組 298
7.5.2 利用單選按鈕確定用戶的選擇 299
7.6 組合框控制項ComboBox 300
7.6.1 設定組合框風格 301
7.6.2 調整組合框列表部分大小 301
7.6.3 向組合框中插入數據 302
7.6.4 獲取用戶選擇的數據 303
7.6.5 設定組合框默認顯示的數據 303
7.7 列表框控制項ListBox 303
7.7.1 向列表框中插入文本 304
7.7.2 為列表框中的項目添加複選功能 305
7.7.3 同時選擇多個項目 306
7.8 圖像控制項Picture 307
7.8.1 使用屬性視窗顯示點陣圖 307
7.8.2 動態載入點陣圖 308
7.9 實戰 309
7.9.1 利用圖像控制項實現公交線路模擬 309
7.9.2 設計媒體播放器 312
7.10 小結 314
7.11 實戰練習 314
第8章 MFC高級控制項 315
視頻講解:84分鐘
8.1 圖像列表控制項ImageList 316
8.1.1 創建圖像列表 316
8.1.2 使用圖像列表繪圖 317
8.2 列表視圖控制項ListControl 319
8.2.1 設定列表視圖控制項風格 319
8.2.2 使用列表視圖設計登錄界面 320
8.2.3 設定列表視圖背景點陣圖 321
8.2.4 使用列表視圖顯示表格數據 324
8.3 樹視圖控制項TreeControl 325
8.3.1 設定樹視圖控制項屬性 325
8.3.2 使用樹視圖控制項顯示區域信息 326
8.3.3 修改樹視圖控制項文本顏色 328
8.3.4 設定複選功能的樹視圖控制項 329
8.4 進度條控制項Progress 333
8.4.1 設定進度條樣式 333
8.4.2 使用進度條顯示操作進度 334
8.5 滑塊控制項Slider 335
8.5.1 滑塊控制項屬性設定 335
8.5.2 使用滑塊控制項設定顏色 336
8.6 標籤控制項TabControl 339
8.6.1 標籤控制項屬性設定 339
8.6.2 使用標籤控制項設計多頁面視窗 341
8.6.3 顯示圖示的標籤控制項 343
8.7 實戰 344
8.7.1 刪除學生信息 344
8.7.2 對點陣圖檔案進行批量編號命名 348
8.8 小結 351
8.9 實戰練習 351
第9章 選單、工具列和狀態欄設計 353
視頻講解:74分鐘
9.1 選單設計 354
9.1.1 設計選單資源 354
9.1.2 選單項命令處理 357
9.1.3 動態創建選單 358
9.1.4 禁用/啟用選單項 361
9.1.5 設計彈出式選單 363
9.1.6 設計點陣圖選單 365
9.2 工具列設計 368
9.2.1 工具列資源設計 368
9.2.2 工具列按鈕命令處理 371
9.2.3 動態創建工具列 372
9.2.4 為工具列設定工具提示功能 376
9.3 狀態欄設計 377
9.3.1 創建狀態欄 377
9.3.2 在狀態欄中顯示進度條 380
9.4 實戰 382
9.4.1 設計學生管理系統主界面 382
9.4.2 設計系統列托盤選單 385
9.5 小結 387
9.6 實戰練習 387
第10章 文本、圖形圖像處理技術 389
視頻講解:90分鐘
10.1 圖形設備接口 390
10.1.1 設備上下文DC 390
10.1.2 GDI對象 391
10.2 對話框視窗區域 392
10.3 文本輸出 394
10.3.1 在指定區域中輸出文本 394
10.3.2 輸出指定字型和顏色文本 396
10.3.3 在通道中輸出文本 398
10.3.4 在圖像背景上輸出透明文本 399
10.4 繪製圖形 401
10.4.1 繪製五子棋表格 401
10.4.2 繪製多邊形 403
10.4.3 繪製控制項外觀 404
10.4.4 填充區域 405
10.5 圖像輸出 407
10.5.1 在視窗中輸出點陣圖資源 407
10.5.2 顯示磁碟中的點陣圖檔案 410
10.5.3 在視窗非客戶區域輸出點陣圖 412
10.5.4 點陣圖檔案結構分析 414
10.5.5 使用點陣圖數據直接繪圖 416
10.5.6 顯示JPEG格式圖像 419
10.6 GDI+圖像處理技術 422
10.6.1 在程式中使用GDI+ 422
10.6.2 使用GDI+顯示GIF動畫 423
10.6.3 使用GDI+實現圖像水印效果 426
10.7 實戰 428
10.7.1 設計具有圖片滾動功能的瀏覽器 428
10.7.2 設計字形窗體的程式啟動界面 433
10.8 小結 435
10.9 實戰練習 435
第11章 程式調試 437
視頻講解:30分鐘
11.1 斷點跟蹤 438
11.1.1 設計簡單斷點 438
11.1.2 設定數據斷點 439
11.1.3 條件斷點 439
11.1.4 設定訊息斷點 440
11.2 調試視窗 441
11.2.1 Watch視窗 441
11.2.2 Call Stack視窗 443
11.2.3 Memory視窗 443
11.2.4 Variables視窗 444
11.2.5 Registers視窗 445
11.2.6 Disassembly視窗 446
11.3 宏調試技術 447
11.3.1 套用TRACE宏輸出信息 448
11.3.2 套用ASSERT宏診斷條件是否成立 448
11.4 記憶體泄露檢查 449
11.5 小結 450
第12章 列印技術 451
視頻講解:63分鐘
12.1 列印基礎知識 452
12.1.1 印表機介紹 452
12.1.2 解析度 452
12.1.3 映射模式 452
12.2 列印輸出 454
12.2.1 獲取印表機設備上下文 454
12.2.2 列印文本信息 455
12.2.3 列印圖像 457
12.3 列印控制 459
12.3.1 控制列印方向 461
12.3.2 設定列印紙大小 463
12.4 實戰 464
12.4.1 實現工作證列印 464
12.4.2 列印對話框及其控制項中的數據 467
12.5 小結 469
12.6 實戰練習 469
第13章 檔案操作 471
視頻講解:104分鐘
13.1 使用C函式進行檔案操作 472
13.1.1 讀取檔案信息 472
13.1.2 寫入檔案信息 474
13.1.3 定位檔案 475
13.2 使用CFile類進行檔案操作 477
13.2.1 讀取檔案信息 477
13.2.2 寫入檔案信息 479
13.2.3 定位檔案 481
13.2.4 檔案異常處理 483
13.3 檔案管理 485
13.3.1 獲取檔案屬性信息 486
13.3.2 查找檔案 487
13.3.3 複製檔案 490
13.3.4 刪除檔案 492
13.4 INI檔案操作 494
13.4.1 INI檔案結構解析 494
13.4.2 讀寫INI檔案 494
13.5 註冊表操作 497
13.5.1 使用函式直接讀寫註冊表 498
13.5.2 使用CRegKey類讀寫註冊表 502
13.6 實戰 505
13.6.1 複製檔案過程中顯示進度條 505
13.6.2 設定開機自動運行 507
13.7 小結 510
13.8 實戰練習 510
第14章 ADO資料庫編程 511
視頻講解:32分鐘
14.1 資料庫概述 512
14.1.1 資料庫發展歷史 512
14.1.2 關係型資料庫 513
14.2 ADO技術 513
14.2.1 ADO概述 514
14.2.2 在工程中使用ADO技術 514
14.3 ADO對象 514
14.3.1 ADO連線對象Connection 514
14.3.2 ADO記錄集對象Recordset 517
14.3.3 ADO命令對象Command 520
14.4 實戰 522
14.4.1 使用ActiveX控制項連線資料庫 522
14.4.2 使用ADO對象向資料庫添加數據 524
14.4.3 使用SQL語句修改和刪除資料庫中的數據 527
14.5 小結 529
14.6 實戰練習 529
第15章 多執行緒應用程式設計 531
視頻講解:72分鐘
15.1 執行緒概述 532
15.1.1 執行緒的定義 532
15.1.2 執行緒與進程的關係 532
15.2 執行緒的創建 533
15.2.1 使用CreateThread函式創建執行緒 533
15.2.2 使用_beginthread函式創建執行緒 535
15.2.3 使用AfxBeginThread函式創建執行緒 536
15.3 執行緒的調度 539
15.3.1 掛起執行緒 539
15.3.2 喚醒執行緒 540
15.3.3 終止執行緒 541
15.4 執行緒同步 542
15.4.1 執行緒同步的必要性 543
15.4.2 使用事件對象實現執行緒同步 544
15.4.3 使用互斥對象實現執行緒同步 546
15.4.4 使用信標對象實現執行緒同步 548
15.4.5 使用關鍵代碼段實現執行緒同步 550
15.5 執行緒池 552
15.5.1 異步調用函式 553
15.5.2 依據指定的時間間隔調用函式 555
15.6 實戰 557
15.6.1 使用多執行緒實現臨時檔案清理 558
15.6.2 使用多執行緒實現任務列表管理 566
15.7 小結 572
15.8 實戰練習 572
第16章 動態程式庫 573
視頻講解:41分鐘
16.1 動態程式庫基礎 574
16.1.1 動態程式庫的特點 574
16.1.2 查看動態程式庫 574
16.2 創建和訪問動態程式庫 575
16.2.1 創建通用的動態程式庫 575
16.2.2 訪問動態程式庫 577
16.2.3 向動態程式庫中添加類和資源 578
16.2.4 訪問動態程式庫中的類和資源 580
16.3 移花接木——函式轉發器 581
16.4 實戰 582
16.4.1 使用動態程式庫設計支持多國語言的應用程式 582
16.4.2 利用動態程式庫實現界面換膚 586
16.5 小結 588
16.6 實戰練習 588
第17章 網路編程 589
視頻講解:116分鐘
17.1 計算機網路基礎 590
17.1.1 計算機網路發展歷史 590
17.1.2 OSI參考模型 590
17.1.3 IP位址 591
17.1.4 域名 591
17.1.5 地址解析 592
17.1.6 TCP/IP協定 593
17.1.7 連線埠 594
17.2 套接字編程基礎 595
17.2.1 套接字概述 595
17.2.2 套接字阻塞模式 595
17.2.3 位元組順序 596
17.2.4 套接字I/O模型 596
17.3 套接字函式 611
17.3.1 套接字函式介紹 611
17.3.2 設計簡單的網路聊天程式 616
17.4 MFC套接字編程 624
17.4.1 CAsyncSocket類 624
17.4.2 CSocket類 628
17.4.3 設計多人對話的網路聊天室 629
17.5 實戰 635
17.5.1 設計信息廣播應用程式 635
17.5.2 設計檔案傳送應用程式 638
17.6 小結 657
17.7 實戰練習 657
第3部分 項目實戰
第18章 學生管理系統 661
視頻講解:104分鐘
18.1 開發背景 662
18.2 系統分析 662
18.2.1 需求分析 662
18.2.2 系統功能描述 662
18.3 系統設計 663
18.3.1 系統目標 663
18.3.2 系統功能結構 663
18.3.3 系統預覽 664
18.3.4 業務流程圖 664
18.3.5 資料庫設計 665
18.4 公共類設計 667
18.5 主窗體設計 668
18.6 科目信息管理模組設計 669
18.6.1 科目信息管理模組概述 669
18.6.2 科目信息管理技術分析 669
18.6.3 科目信息管理實現過程 670
18.7 學生信息管理模組設計 675
18.7.1 學生信息管理模組概述 675
18.7.2 學生信息管理技術分析 675
18.7.3 學生信息管理實現過程 675
18.8 學生成績錄入模組設計 679
18.8.1 學生成績錄入模組概述 679
18.8.2 學生成績錄入技術分析 679
18.8.3 學生成績錄入實現過程 680
18.9 成績等級管理模組設計 682
18.9.1 成績等級管理模組概述 682
18.9.2 成績等級管理技術分析 682
18.9.3 成績等級管理實現過程 683
18.10 學生違規查詢模組設計 690
18.10.1 學生違規查詢模組概述 690
18.10.2 學生違規查詢技術分析 690
18.10.3 學生違規查詢實現過程 691
18.11 學生成績報表列印模組設計 694
第19章 人事考勤管理系統 699
視頻講解:91分鐘
19.1 開發背景 700
19.2 系統分析 700
19.2.1 需求分析 700
19.2.2 系統功能描述 700
19.3 系統設計 700
19.3.1 系統目標 700
19.3.2 系統功能結構 701
19.3.3 系統預覽 701
19.3.4 業務流程圖 702
19.3.5 資料庫設計 702
19.4 公共類設計 703
19.5 主窗體設計 708
19.6 用戶登錄模組設計 709
19.6.1 用戶登錄模組概述 709
19.6.2 用戶登錄模組技術分析 709
19.6.3 用戶登錄模組實現過程 710
19.7 用戶管理模組設計 711
19.7.1 用戶管理模組概述 711
19.7.2 用戶管理模組技術分析 711
19.7.3 用戶管理模組實現過程 712
19.8 部門管理模組設計 713
19.8.1 部門管理模組概述 713
19.8.2 部門管理模組技術分析 714
19.8.3 部門管理模組實現過程 714
19.9 人員信息管理模組設計 717
19.9.1 人員信息管理模組概述 717
19.9.2 人員信息管理技術分析 717
19.9.3 人員信息管理實現過程 717
19.10 考勤管理模組設計 723
19.10.1 考勤管理模組概述 723
19.10.2 考勤管理模組技術分析 724
19.10.3 考勤管理模組實現過程 725
19.11 考勤匯總查詢模組設計 730
19.11.1 考勤匯總查詢模組概述 730
19.11.2 考勤匯總查詢模組技術分析 730
19.11.3 考勤匯總查詢模組實現過程 731
第20章 視頻聊天軟體 735
視頻講解:52分鐘
20.1 開發背景 736
20.2 系統功能描述 736
20.3 系統技術分析 736
20.4 系統實現過程 737
第21章 區域網路監控系統 745
視頻講解:39分鐘
21.1 開發背景 746
21.2 系統功能描述 746
21.3 系統技術分析 746
21.4 系統實現過程 747
第22章 垃圾檔案清理工具 753
視頻講解:19分鐘
22.1 開發背景 754
22.2 系統功能描述 754
22.3 系統技術分析 754
22.4 系統實現過程 755
附錄A 759
第1章思考題答案 759
第2章思考題答案 760
第3章思考題答案 760
第4章思考題答案 761
第5章思考題答案 761
第6章思考題答案 762
第7章思考題答案 763
第8章思考題答案 763
第9章思考題答案 764
第10章思考題答案 764
第11章思考題答案 765
第12章思考題答案 766
第13章思考題答案 766
第14章思考題答案 768
第15章思考題答案 768
第16章思考題答案 769
第17章思考題答案 769