內容簡介
本書循序漸進、由淺入深地講解了Visual C++(簡稱VC)的開發技術,並通過具體實例的實現過程演練了各個知識點的具體使用流程。全書共21章。第 1章講解了Visual C++技術的基礎知識,包括搭建開發環境和編寫起始程式;第 2~6章講解了Visual C++基礎語法、條件語句、流程控制、其他數據類型和函式等知識,這些內容都是Visual C++開發技術的核心知識;第7~14章講解了面向對象、類、圖形圖像編程和動態程式庫的基本知識,這是全書的重點和難點;第 15~19章講解了資料庫技術、多線編程、網路編程和多媒體編程等內容;第 20~21章通過2個綜合實例的實現過程,介紹了Visual C++技術在綜合項目中的開發過程。全書內容以“技術解惑”和“範例演練”貫穿全書,引 領讀者全面掌握Visual C++語言開發。
本書不但適用於Visual C++的初學者,也適於有一定Visual C++基礎的讀者,還可以作為大專院校相關專業師生的學習用書和培訓學校的教材。
目錄
第 1章 Visual C++ 6.0的**初印象 1
(視頻總計26分鐘,實例3個,拓展實例6個,技術解惑3個)
1.1 Visual C++ 6.0概述 2
1.1.1 Visual C++ 6.0的特點 2
1.1.2 安裝Visual C++ 6.0 2
1.2 Visual C++ 6.0開發環境 5
1.2.1 熟悉集成開發環境 5
1.2.2 選單項 7
1.2.3 工具列 16
1.2.4 項目與項目工作區 17
1.2.5 編輯器視窗 18
1.3 利用Visual C++ 6.0編寫C++
程式 21
1.4 技術解惑1.4 技術解惑 23
1.4.1 學習C++是否有用 23
1.4.2 解決Windows 7安裝Visual
C++ 6.0的兼容性問題 23
1.4.3 怎樣學好編程 25
第 2章 C++的基本語法 26
(視頻總計32分鐘,實例5個,拓展實例10個,技術解惑12個)
2.1 面向對象 27
2.1.1 什麼是OOP 27
2.1.2 面向對象編程 27
2.2 分析C++的程式結構 28
2.2.1 從一段代碼看C++程式
結構 28
2.2.2 C++的檔案組織 29
2.3 必須遵循的編碼規範 30
2.3.1 養成良好的習慣 30
2.3.2 必須使用的注釋 31
2.4 輸入/輸出基礎 31
2.4.1 標準輸入與輸出對象 31
2.4.2 一個使用I/O庫的程式 32
2.5 標識符 33
2.5.1 C++中的保留字 33
2.5.2 需要遵循的命名規則 34
2.6 數據類型 35
2.6 數據類型2.6.1 數字型 36
2.6.2 邏輯運算型 36
2.6.3 字元型和字元串 37
2.7 變數 38
2.7.1 定義變數 38
2.7.2 聲明變數 39
2.7.3 變數的作用域 40
2.8 常量 42
2.8.1 什麼是常量 43
2.8.2 常量的分類 43
2.8.3 常量的套用 45
2.9 技 術 解 惑 46
2.9.1 C++標識符的長度 46
2.9.2 字元和字元串的區別 46
2.9.3 C++字元串和C字元串的
轉換 46
2.9.4 C++字元串和字元串結束
標誌 46
2.9.5 C++中的面向對象、C中的
面向過程的含義 47
2.9.6 面向對象和面向過程的
區別 47
2.9.7 C++中常量的命名 48
2.9.8 在C++程式中如何定義
常量 48
2.9.9 使用關鍵字const注意
事項 48
2.9.10 關於全局變數的
初始化,C語言和C++
是否有區別 48
2.9.11 C/C++變數在記憶體中的
分布 49
2.9.12 靜態變數的初始化順序 49
第3章 運算符和表達式 50
(視頻總計27分鐘,實例3個,拓展實例6個,技術解惑5個)
3.1 運算符 51
3.1.5 ++/--運算符 53
3.1.6 位運算符 54
3.1.7 求位元組數運算符 55
3.2 表達式詳解 57
3.2.1 表達式概述 57
3.2.2 類型轉換 57
3.3 技術解惑 60
3.3.1 避免運算結果溢出的一個
方案 60
3.3.3 運算符的優先權和結合性 60
3.3.4 C/C++表達式的限制 62
3.3.5 表達式的真正功能 62
第4章 流程控制語句 63
(視頻總計36分鐘,實例11個,拓展實例22個,技術解惑6個)
4.1 **簡單的語句和語句塊 64
4.1.1 **簡單的語句 64
4.1.2 語句塊 64
4.1.3 語句的總結 66
4.2 **常見的順序結構 67
4.3 選擇結構 67
4.3.1 單分支結構語句 68
4.3.2 雙分支結構語句 68
4.3.3 多分支結構語句 70
4.4 循環結構 73
4.4.1 for語句 73
4.4.2 while語句 75
4.4.3 do-while語句 77
4.5 跳轉語句 78
4.5.2 continue語句 78
4.6 技術解惑 80
4.6.1 循環中斷問題 80
4.6.2 分析循環語句的效率 80
4.6.3 幾種循環語句的比較 81
4.6.4 在C++中,for循環該
怎么讀 81
4.6.5 一個C++循環結構嵌套的
問題 81
的區別 82
第5章 其他數據類型 83
(視頻總計35分鐘,實例8個,拓展實例16個,技術解惑9個)
5.1 指針 84
5.1.1 什麼是指針 84
5.1.2 定義指針的方式 84
5.1.3 指針的分類 86
5.1.4 指針的初始化 86
5.1.5 指針運算 88
5.1.6 指針的指針 89
5.1.7 使用指針 90
5.1.8 分析指針和引用的關係 92
5.1.9 特殊的指針 92
5.2 數組 93
5.2.1 數組基礎 93
5.2.2 動態數組 95
5.2.3 數組存儲 95
5.2.4 字元數組 96
5.2.5 數組初始化 96
5.2.6 指針和數組 97
5.2.7 使用數組 98
5.3 枚舉 98
5.3.1 枚舉基礎 99
5.3.2 使用枚舉 101
5.4 結構體 102
5.4.1 定義結構體 102
5.4.2 指向結構的指針 102
5.4.3 使用結構體 103
5.5 聯合 104
5.6 自定義的型 105
5.6.1 typedef的作用 105
5.6.2 使用typedef 106
5.7 技術解惑 107
5.7.1 指針的命名規範 107
5.7.2 C++中指針和引用的
區別 107
5.7.3 變數在語言中的實質 108
5.7.4 C++開發中如何避免
和解決野指針 109
5.7.5 字元數組和字元串
是否可以相互轉換 110
5.7.6 靜態數組的速度是否
快於動態數組 110
5.7.7 Arrays與Vector的區別 111
5.7.8 數組名不是指針 111
5.7.9 用戶自定義類型所占用
的記憶體空間 111
第6章 函式 113
(視頻總計33分鐘,實例6個,拓展實例12個,技術解惑5個)
6.1 函式基礎 114
6.1.1 定義函式的方式 114
6.1.2 函式分類 114
6.1.3 函式定義實例 117
6.2 函式的參數 119
6.2.1 形參和實參 119
6.2.2 使用數組作為函式參數 120
6.3 返回值和返回語句 121
6.4 調用函式 121
6.5 函式遞歸 122
6.6 指向函式的指針 123
6.7 將函式作為參數 124
6.8 變數的作用域和生存期 125
6.8.1 變數作用域 125
6.8.2 靜態存儲變數和動態
存儲變數 126
6.9 技術解惑 129
6.9.1 用typedef定義一個函式
指針類型 129
6.9.2 const關鍵字在函式中的
作用 130
6.9.3 C++函式的記憶體分配機制 130
6.9.4 主函式和子函式 131
6.9.5 函式聲明和函式定義的
區別 131
第7章 類和封裝 132
(視頻總計29分鐘,實例5個,拓展實例10個,技術解惑3個)
7.1 類 133
7.1.1 聲明類 133
7.1.2 類的屬性 134
7.1.3 類的方法 134
7.1.4 構造函式 135
7.1.5 析構函式 136
7.1.6 靜態成員 137
7.1.7 友元 139
7.1.8 修飾符 140
7.1.9 指向類成員的指針 141
7.1.10 嵌套類 142
7.1.11 類檔案的組織 142
7.2 對象 143
7.2.1 定義對象 143
7.2.2 使用對象 143
7.2.3 this指針 144
7.3 技術解惑 144
7.3.1 淺拷貝和深拷貝 144
7.3.2 構造函式的錯誤認識
和正確認識 145
7.3.3 保護性析構函式的作用 146
(視頻總計31分鐘,實例7個,拓展實例14個,技術解惑3個)
8.1.2 使用程式嚮導生成的檔案 153
8.2 Class Wizard詳解 162
8.2.1 初識Class Wizard 162
8.2.2 添加類 165
8.2.3 添加類成員變數 166
8.2.4 添加訊息回響函式 168
8.2.5 覆蓋虛擬函式 170
8.3 程式調試 170
8.3.1 查找源程式的語法錯誤 170
8.3.2 Debug調試 171
8.4 技術解惑 173
8.4.1 Class Wizard不能正常
工作的解決辦法 173
8.4.2 如何在調試過程中查看
輸出信息 173
8.4.3 MFC中的異常開銷問題 174
第9章 對話框 175
(視頻總計27分鐘,實例7個,拓展實例14個,技術解惑3個)
9.1 對話框的概念 176
9.1.1 基於對話框的應用程式 176
9.1.2 對話框類CDialog 177
9.1.3 對話框數據交換與驗證 177
9.2 使用對話框 179
9.2.1 對話框的分類 179
9.2.2 創建對話框 179
9.2.3 編輯對話框 180
9.3 公用對話框 182
9.3.1 類CColorDialog 183
9.3.2 類CFileDialog 184
9.3.3 類CFindReplaceDialog 185
9.3.4 類CFontDialog 186
9.3.5 類CPrintDialog 186
9.4 訊息對話框 188
9.5 技術解惑 189
9.5.1 是否可以把一個對話框
的控制項複製到另一個
對話框中 189
9.5.2 如何保存編輯框中的
內容 190
9.5.3 解決MFC生成的exe程式
不能在其他計算機上運行
的問題 190
第 10章 控制項 192
(視頻總計42分鐘,實例9個,拓展實例18個,技術解惑3個)
10.1 標準控制項 193
10.1.1 Windows標準控制項 193
10.1.2 不能傳送訊息的靜態
控制項 194
10.1.3 編輯框控制項 196
10.1.4 按鈕 200
10.1.5 列表框 203
10.1.6 組合框 208
10.1.7 滾動條 211
10.2 公共控制項 213
10.2.1 標籤控制項與屬性表 213
10.2.2 圖像列表 215
10.2.3 列表視圖控制項 216
10.2.4 樹視圖控制項 217
10.3 技術解惑 223
10.3.1 如何繪製按鈕 223
10.3.2 MFC控制項訊息 223
10.3.3 顯示或隱藏控制項 224
第 11章 文檔和視圖 225
(視頻總計36分鐘,實例12個,拓展實例24個,技術解惑3個)
11.1 剖析文檔與視圖結構 226
11.1.1 文檔與視圖結構 226
11.1.2 文檔與視圖之間的關係 226
11.1.3 多文檔 227
11.1.4 創建單文檔應用程式 228
11.2 設計選單 229
11.2.1 建立選單資源 229
11.2.2 添加選單命令處理函式 229
11.3 滑鼠回響處理 233
11.3.1 滑鼠訊息 234
11.3.2 添加滑鼠訊息回響函式 234
11.4 工具列和狀態欄設計 235
11.4.1 定製工具列 235
11.4.2 定製狀態欄 237
11.5 對文檔進行讀寫 238
11.5.1 時髦的序列化工作 239
11.5.2 MFC應用程式的序列化 239
11.6 使用不同的視圖 241
11.6.1 滾動視圖 241
11.6.2 多視圖 243
11.7 技術解惑 247
11.7.1 模板、文檔、視圖和框架
的關係 247
11.7.2 模板、文檔、視圖和框架
的相互訪問 247
11.7.3 文檔和視圖的關係 248
第 12章 圖形圖像編程 249
(視頻總計40分鐘,實例11個,拓展實例22個,技術解惑4個)
12.1 圖形設備接口 250
12.1.1 GDI接口基礎 250
12.1.2 GDI坐標系和映射模式 251
12.1.3 顏色和顏色設定 252
12.2 繪製圖形 252
12.2.1 GDI對象 252
12.2.2 創建和使用畫筆 253
12.2.3 創建和使用畫刷 254
12.2.4 繪製基本圖形 256
12.3 文本與字型 257
12.3.1 字型的概念 257
12.3.2 創建字型 258
12.3.3 “字型”對話框 259
12.3.4 繪製文本 261
12.4 點陣圖、圖示和游標 261
12.4.1 點陣圖 262
12.4.2 圖示 267
12.4.3 游標 268
12.5 讀寫、顯示圖像檔案 270
12.5.1 剖析BMP圖像檔案 270
12.5.2 讀寫BMP圖像檔案 272
12.5.3 顯示BMP圖像 274
12.5.4 多層圖像的合成 276
12.6 技術解惑 278
12.6.1 MFC顯示點陣圖的方法 278
12.6.2 製作圖形按鈕的通用
方法 279
12.6.3 在MFC中設定背景顏色
方法 279
12.6.4 百頁窗效果 280
第 13章 動態程式庫 281
(視頻總計20分鐘,實例6個,拓展實例12個,技術解惑3個)
13.1 動態程式庫基礎 282
13.2 動態程式庫的創建及調用 283
13.2.1 非MFC動態庫 284
13.2.2 常規動態庫 285
13.2.3 擴展動態庫 289
13.3 技術解惑 290
13.3.1 DLL的編制與具體的編程
語言及編譯器無關 290
13.3.2 MFC中的動態程式庫是否
必須是動態連結 291
13.3.3 動態連結到MFC的規則
DLL 291
(視頻總計27分鐘,實例9個,拓展實例18個,技術解惑2個)
14.1 組件與ActiveX控制項 293
14.2 創建ActiveX控制項 294
14.2.1 使用MFC創建ActiveX
控制項 294
14.2.2 測試ActiveX控制項 296
14.2.3 添加事件 296
14.2.4 添加屬性 299
14.3 調用ActiveX控制項 303
14.3.1 MFC應用程式調用
ActiveX控制項 304
14.3.2 在Web頁面調用
ActiveX控制項 305
14.4 技術解惑 305
14.4.1 將ActiveX 控制項標記為
安全 305
14.4.2 ActiveX控制項的自註冊
問題 307
第 15章 資料庫技術 308
(視頻總計42分鐘,實例9個,拓展實例18個,技術解惑3個)
15.1 Windows資料庫解決方案 309
15.1.1 常見的資料庫管理系統 309
15.1.2 常見的資料庫訪問
接口 310
15.1.3 資料庫操作語言SQL 312
15.2 ADO訪問技術 314
15.2.1 ADO資料庫訪問模型 314
15.2.2 ADO資料庫訪問步驟 316
15.2.3 使用ADO訪問Access
資料庫 317
15.3 ODBC訪問技術 322
15.3.1 MFC ODBC資料庫
訪問類 323
15.3.2 MFC ODBC資料庫
訪問技術 326
15.3.3 DBGrid控制項的使用 333
15.4 技術解惑 335
15.4.1 資料庫與MFC的連線
問題 335
15.4.2 滾動記錄的方法 336
15.4.3 數據模型、概念模型和
關係數據模型 336
第 16章 多執行緒 338
(視頻總計33分鐘,實例7個,拓展實例14個,技術解惑3個)
16.1 認識多執行緒 339
16.1.1 執行緒與進程 339
16.1.2 執行緒的優先權 339
16.1.3 執行緒同步 340
16.2 Win32 API多執行緒編程 340
16.2.1 編寫執行緒函式 340
16.2.2 創建一個執行緒 340
16.2.3 終止執行緒 342
16.2.4 設定執行緒優先權 343
16.2.5 執行緒的掛起與恢復 343
16.2.6 執行緒同步 343
16.3 多執行緒編程 346
16.3.1 工作執行緒的創建與
使用 346
16.3.2 創建與使用用戶界面
執行緒 347
16.3.3 執行緒同步 348
16.3.4 執行緒通信 353
16.4 技術解惑 354
16.4.1 Visual C++ 6.0執行緒同步的
問題 354
16.4.2 執行緒和標準的Windows
主程式的關係 355
16.4.3 執行緒安全的本質 355
第 17章 網路編程技術 356
(視頻總計34分鐘,實例6個,拓展實例12個,技術解惑2個)
17.1 認識Windows Socket 357
17.1.1 分析網路通信基本流程 357
17.1.2 搭建開發環境 357
17.1.3 幾種常用的數據結構 358
17.1.4 需要了解的兩個概念 358
17.2 流式套接字 358
17.2.1 流式套接字編程模型 359
17.2.2 利用流式套接字傳輸
數據檔案 362
17.3 數據報套接字編程 365
17.3.1 編程模型 365
17.3.2 傳輸訊息 366
17.4 實現區域網路內IP多播 367
17.4.1 IP多播 367
17.4.2 實現多播通信 370
17.5 利用MFC進行套接字編程 372
17.5.1 CAsyncSocket和CSocket
組合 372
17.5.2 利用類CSocket實現一個
區域網路通信軟體 373
17.6 WinInet類 376
17.6.1 MFC 的WinInet類 376
17.6.2 利用類WinInet編寫網際網路
客戶端程式 377
17.7 技術解惑 380
17.7.1 TCP/IP 體系結構 380
17.7.2 客戶機/伺服器模式
介紹 381
第 18章 多媒體編程 382
(視頻總計19分鐘,實例3個,拓展實例6個,技術解惑2個)
18.1 控制接口 383
18.1.1 常見的幾種多媒體
類型 383
18.1.2 **基本的媒體控制
接口 383
18.1.3 MCIWnd視窗類 386
18.2 使用MFC控制項實現多媒體
編程 388
18.2.1 Active Movie Control
Object基礎 389
18.2.2 用ActiveX控制項播放
媒體信息 390
18.3 使用OpenGL實現三維程式 391
18.3.1 OpenGL初步 392
18.3.2 OpenGL三維程式設計 394
18.4 技 術 解 惑 397
18.4.1 音頻編碼和解碼技術 397
18.4.2 探討像素格式 398
第 19章 註冊表編程其實很簡單 399
(視頻總計34分鐘,實例3個,拓展實例6個)
19.1 Windows註冊表印象 400
19.2 常用的幾個函式 401
19.2.1 創建鍵函式
RegCreateKeyEx 401
19.2.2 打開鍵函式
RegOpenKeyEx 404
19.2.3 讀取鍵值函式
RegQueryValueEx 404
19.2.4 設定鍵值函式RegSetValueEx 406
第 20章 仿QQ通信工具 408
(視頻總計28分鐘)
20.1 需求分析 409
20.1.1 總體設計 409
20.1.2 檔案概述 411
20.2 伺服器端編碼 412
20.2.1 設計伺服器界面 412
20.2.2 用戶信息管理模組 412
20.2.3 客戶端請求信息處理 415
20.2.4 系統群訊息傳送功能 417
20.3 客戶端編碼 418
20.3.1 客戶端界面設計 418
20.3.2 基本信息與訊息設計 419
20.3.3 執行緒函式的設計與實現 420
20.3.4 與伺服器端的互動功能 422
20.3.5 客戶端之間的互動 425
20.4 系統調試 429
第 21章 專業理財系統 430
(視頻總計44分鐘)
21.1 系統分析 431
21.1.1 需求分析 431
21.1.2 可行性分析 431
21.2 系統設計 431
21.2.1 系統目標 431
21.2.2 系統模組結構 432
21.3 設計數據結構 432
21.3.1 設計資料庫 433
21.3.2 設計系統框架 434
21.4 前期編碼 437
21.4.1 用戶管理模組 438
21.4.2 收支信息模組 442
21.5 後期編碼 449
21.5.1 設計界面 449
21.5.2 編碼實現 449
21.6 項目調試 452