《visual c++典型模組與項目實戰大全》一書是由戴晟暉 、楊國祥、陳國建等人編著有關於電腦程式設計,主要以實戰為主,分為各個框架。清華大學出版社出版!出版時間:2012年1月1日
基本介紹
- 書名:Visual C++典型模組與項目實戰大全
- 作者:戴晟暉 楊國祥 陳國建
- ISBN:9787302255864
- 類別:電腦程式設計
- 頁數:681
- 定價:79元
- 出版社:清華大學出版社
- 出版時間:2012年1月1日
- 裝幀:平裝
- 開本:16開
基本信息,編輯推薦,內容簡介,作譯者,目錄,前言,
基本信息
上架時間:2011-11-15
出版日期:2011 年11月
開本:16開
頁碼:1
版次:1-1
編輯推薦
融匯監控、音頻、視頻、執行緒、鉤子、串口等多種熱門技術
精選13個典型模組和3個項目案例,實戰Visual C++套用開發
計畫在51CTO等專業技術網站的讀書頻道宣傳;
計畫在互動、噹噹、卓越等網路書店宣傳;
內容簡介
《visual c++典型模組與項目實戰大全》以實戰開發為原則,以visual c++ 6.0(簡稱vc++ 6.0)集成開發環境為主框架,以模組套用及項目開發為主線,通過visual c++開發中最常見的13個典型模組和3個完整的項目案例,詳細介紹執行緒、訊息、ftp技術、串口通信、網路通信、gdi、gdi+、directshow、opencv等熱門技術以及vc+odbc+sql、vc+ado+acess等主流框架的整合使用。
《visual c++典型模組與項目實戰大全》附帶1張dvd光碟,內容為作者為本書錄製的全程多媒體語音教學視頻及本書所涉及的原始碼。《visual c++典型模組與項目實戰大全》共18章,分為3篇。涵蓋的主要內容有桌面時鐘、電子郵件收發管理器、系統資源管理器、系統任務管理工具、ftp客戶端程式、音樂播放器、視頻播放器、區域網路聊天工具、截屏工具、掃雷遊戲、串口調試器、列印工具、監控技術、人事管理系統、電子相冊及超市管理系統。
《visual c++典型模組與項目實戰大全》內容豐富,實例典型,實用性強,適合各個層次想要學習visual c++開發技術的人員閱讀,尤其適合有一定visual c++編程基礎,要提高編程技術的開發人員閱讀。
作譯者
本書提供作譯者介紹
戴晟暉 畢業於東華理工大學。有8年的大型行業軟體系統開發經驗和5年的Visual C++教學經驗。擅長Visual C++環境的各種開發技術,尤其熟悉MFC編程,對TCP/IP網路協定、嵌入式系統和資料庫技術有深入的研究。現任職於東華理工大學,主導開發了雲南省山區公路水毀預警信息管理系統等多個大中型項目。
楊國祥 畢業於計算機科學與技術專業,獲得工學學士學位。從事Visual C++項目開發6年。熟悉Visual C++開發環境,擅長圖形圖像、網路通信、資料庫及嵌入式等開發。編寫並出版了《C/C++程式設計師面試指南》..
目錄
《visual c++典型模組與項目實戰大全》
第1篇 visual c++項目開發基礎
第1章 vc++ 6.0程式設計簡介 2
教學視頻:11分鐘
1.1 visual c++ 6.0集成開發環境 2
1.1.1 vc++ 6.0集成開發環境選單欄及工具列簡介 3
1.1.2 vc++ 6.0集成開發環境工作區簡介 3
1.2 visual c++ 6.0的“hello world!” 4
1.2.1 vc++ 6.0可創建的工程簡介 5
1.2.2 創建基於win32 console application的“hello world!” 6
1.2.3 創建基於mfc app wizard(exe)的“hello world!” 7
1.3 vc++集成開發環境使用技巧 8
1.3.1 快速定位 8
1.3.2 快速格式化一段原始碼 9
1.3.3 從工程中徹底刪除一個類 10
1.3.4 在vc++中設定頭檔案和庫檔案 10
1.3.5 在工作區導入多個項目 10
1.4 vc++集成開發環境常見問題及解決方法 11
1.4.1 工程檔案簡介 11
1.4.2 常見問題及解決方法 12
.1.5 小結 13
第2章 c++編程基礎 14
教學視頻:25分鐘
2.1 變數 14
2.1.1 標識 14
2.1.2 基本數據類型 15
2.1.3 變數的聲明 16
2.2 操作、運算符 16
2.2.1 賦值運算 16
2.2.2 算術運算 17
2.2.3 邏輯運算 18
2.2.4 關係運算 19
2.2.5 位操作運算 19
2.2.6 條件操作運算 20
2.2.7 其他操作運算 20
2.2.8 運算符優先權 22
2.3 控制結構 22
2.3.1 條件控制結構 23
2.3.2 循環控制結構 23
2.3.3 選擇控制結構 25
2.3.4 分支跳轉控制結構 25
2.4 函式 26
2.5 類 26
2.5.1 類的成員變數和成員函式 27
2.5.2 類的繼承 28
2.6 小結 29
第2篇 典型模組開發
第3章 桌面時鐘(gdi實現) 32
教學視頻:64分鐘
3.1 桌面時鐘界面簡介 32
3.2 桌面時鐘的功能簡介 33
3.2.1 桌面時鐘界面控制功能簡介 33
3.2.2 桌面時鐘時間設定功能簡介 36
3.3 控制項知識 37
3.4 實現桌面時鐘的關鍵技術 39
3.4.1 gdi基礎知識簡介 39
3.4.2 gdi編程基礎簡介 40
3.5 gdi的基礎類 40
3.5.1 cdc類 40
3.5.2 畫筆類(線色類) 41
3.5.3 畫刷類(面色類) 43
3.5.4 字型類 45
3.5.5 點類 46
3.5.6 大小類 47
3.5.7 矩形類 47
3.6 gdi繪製像素點的實際套用 49
3.7 gdi繪製線條的實際套用 50
3.7.1 gdi繪製直線的函式 50
3.7.2 用畫筆繪製線的步驟 52
3.7.3 繪製線條的示例 53
3.8 gdi繪製填充圖的實際套用 58
3.8.1 矩形填充圖 58
3.8.2 扇形填充圖 59
3.8.3 填充拖動矩形 60
3.8.4 填充區域 63
3.9 gdi輸出字型的實際套用 65
3.10 錶盤模組的設計與實現 66
3.10.1 錶盤設定模組 66
3.10.2 錶盤的繪製模組 68
3.11 錶針模組的設計與實現 73
3.11.1 錶針設定模組 73
3.11.2 錶針繪製模組 75
3.12 數字時鐘模組的設計與實現 77
3.12.1 數字時鐘設定模組 77
3.12.2 數字時鐘繪製模組 79
3.13 數字日期模組的設計與實現 82
3.14 背景模組的設計與實現 86
3.15 鬧鈴模組的設計與實現 87
3.15.1 蜂鳴器音樂選擇及播放模組 88
3.15.2 鬧鈴設定主模組 89
3.16 系統時間設定模組的設計與實現 91
3.17 主界面模組的設計與實現 92
3.17.1 主窗體界面模組的設計與實現 92
3.17.2 主窗體功能模組的設計與實現 94
3.17.3 主窗體控制模組的設計與實現 97
3.18 小結 102
第4章 電子郵件收發管理器(jmail+自定義按鈕) 103
教學視頻:58分鐘
4.1 電子郵件收發管理器簡介 103
4.1.1 主程式簡介 103
4.1.2 信箱設定信息功能簡介 104
4.1.3 收件箱功能簡介 104
4.1.4 發件箱功能簡介 105
4.1.5 資源管理器技術簡介 106
4.2 自定義的按鈕控制項 107
4.2.1 定義一個新類繼承於cbutton 107
4.2.2 定製按鈕的背景圖像 108
4.2.3 為按鈕添加聲音 115
4.2.4 重載滑鼠事件 117
4.3 定製具有個性背景圖像的對話框 120
4.4 實現電子郵件收發管理器的關鍵技術 122
4.4.1 jmail的基礎知識 122
4.4.2 接收郵件 123
4.4.3 傳送郵件 124
4.5 電子郵件收發管理器的實現 126
4.5.1 主窗體的設計與實現 126
4.5.2 設定模組的設計與實現 130
4.5.3 收件箱模組的設計與實現 130
4.5.4 寫郵件模組的設計與實現 135
4.6 小結 138
第5章 系統資源管理器(檔案操作+檔案檢索+多執行緒) 139
教學視頻:32分鐘
5.1 系統資源管理器簡介 139
5.1.1 樹形結構瀏覽系統檔案資源 139
5.1.2 列表視圖顯示指定目錄下的檔案資源 139
5.1.3 搜尋檔案 140
5.1.4 資源管理器的技術簡介 140
5.2 樹形視圖控制項 141
5.2.1 建立樹形視圖控制項工程 141
5.2.2 為樹形視圖添加名為“根節點”的節點 141
5.2.3 為樹形視圖插入多層節點 142
5.2.4 為樹形視圖添加圖像列表 143
5.2.5 設定樹形視圖的顯示風格 144
5.2.6 為樹形視圖添加項目選中處理函式 145
5.2.7 為樹形視圖添加項目展開處理函式 146
5.3 列表型視圖控制項 147
5.3.1 創建一個列表視圖工程 147
5.3.2 為列表型視圖添加圖像列表 147
5.3.3 為列表型視圖添加新項目 148
5.3.4 為列表型視圖添加項目雙擊事件 148
5.4 windows檔案系統的基礎知識 149
5.5 shell命名空間中對象的標識方法 150
5.5.1 檔案標識簡介 150
5.5.2 什麼是檔案標識列表 150
5.5.3 什麼是檔案標識列表指針 150
5.5.4 檔案標識列表指針的常用處理函式 151
5.6 通過shell接口遍歷系統檔案和資料夾 153
5.6.1 ishellfolder接口的主要方法 153
5.6.2 ienumidlist接口的主要方法 154
5.6.3 遍歷檔案系統的步驟 155
5.7 系統資源管理器的實現過程簡介 155
5.8 主框架模組的設計實現 156
5.8.1 為主框架訂製工具列 156
5.8.2 分割視圖區 156
5.9 樹形視圖顯示檔案系統 157
5.9.1 初始化樹形控制項 157
5.9.2 實現獲取itemidlist檔案名稱稱的功能 158
5.9.3 實現填充樹形控制項的功能 160
5.9.4 實現展開樹形控制項節點的功能 162
5.9.5 實現樹形控制項節點切換的功能 163
5.9.6 實現獲取檔案的系統圖示 164
5.10 列表視圖顯示系統檔案 165
5.10.1 初始化列表視圖 165
5.10.2 實現樹形視圖項目添加的功能 165
5.10.3 執行滑鼠雙擊對象 168
5.11 路徑的前進、後退與向上操作的實現 170
5.11.1 路徑的前進、後退操作的實現 171
5.11.2 路徑的向上操作 174
5.12 檔案查找模組的實現 174
5.12.1 添加並實現檔案查找類 174
5.12.2 檔案查找界面設計與實現 178
5.12.3 檔案查找控制項屬性 179
5.12.4 實現檔案查找功能 179
5.13 小結 183
第6章 系統任務管理工具(系統監控+系統進程) 184
教學視頻:23分鐘
6.1 任務管理器簡介 184
6.1.1 應用程式管理模組 184
6.1.2 進程管理模組 184
6.1.3 性能監測模組 185
6.1.4 任務管理器的技術簡介 185
6.2 控制項知識 186
6.2.1 tab控制項的使用 186
6.2.2 list控制項用作report 187
6.3 實現系統任務管理的關鍵技術 187
6.3.1 如何獲取應用程式信息 187
6.3.2 如何獲取系統進程信息 188
6.3.3 如何啟動、停止進程 189
6.3.4 如何獲取記憶體信息 190
6.3.5 如何獲取cpu信息 190
6.4 主框架模組的設計實現 193
6.4.1 設計主窗體選單欄 193
6.4.2 檔案選單功能實現 194
6.4.3 關機選單功能實現 194
6.4.4 實現tab控制項的功能 196
6.5 應用程式監控模組的實現 198
6.5.1 添加並設定列表控制項 198
6.5.2 檢測系統啟動的應用程式 198
6.5.3 實現應用程式實時監測功能 200
6.5.4 實現應用程式的控制功能 200
6.6 進程監控模組的實現 202
6.6.1 添加並設定列表控制項 202
6.6.2 監測當前的進程信息 202
6.6.3 實現進程的實時監測 205
6.6.4 實現關閉指定進程的功能 206
6.7 記憶體監測模組的實現 207
6.8 cpu監測模組的實現 213
6.9 小結 217
第7章 ftp客戶端程式(internet會話+ftp技術) 218
教學視頻:29分鐘
7.1 ftp客戶端程式簡介 218
7.1.1 樹形結構瀏覽本地系統檔案資源 218
7.1.2 列表視圖顯示ftp伺服器上的檔案資源 218
7.1.3 拖放實現檔案的上傳與下載 218
7.1.4 資源管理器的技術簡介 220
7.2 控制項知識 221
7.2.1 製作浮動對話框 221
7.2.2 為浮動對話框的控制項添加處理事件 222
7.2.3 樹形視圖項目的拖動 223
7.2.4 列表視圖項目的拖動 226
7.3 實現ftp客戶端的關鍵技術 228
7.3.1 cinternetsession類 228
7.3.2 ftpconnection類 229
7.4 ftp客戶端程式的模組實現 230
7.4.1 ftp連線模組的設計實現 230
7.4.2 獲取ftp當前路徑下的所有檔案信息 233
7.4.3 ftp客戶端檔案下載模組 236
7.4.4 ftp客戶端檔案上傳模組 237
7.5 小結 238
第8章 音樂播放器(active movie control object控制項+不規則按鈕+托盤) 239
教學視頻:37分鐘
8.1 音樂播放器簡介 239
8.1.1 打開音樂檔案 239
8.1.2 播放音樂的功能 240
8.1.3 暫停播放及停止播放功能 240
8.1.4 循環播放功能 241
8.1.5 調節音量大小 241
8.1.6 將播放器最小化到托盤 241
8.1.7 音頻播放器的技術簡介 241
8.2 slider控制項 242
8.2.1 用作標識進度的slider控制項 242
8.2.2 調節音量的slider控制項 243
8.3 定製不規則的按鈕控制項 244
8.3.1 自定義按鈕類 244
8.3.2 自定義按鈕的構造及析構的實現 246
8.3.3 創建不規則按鈕的方法 246
8.3.4 實現不規則按鈕的幾個重要方法 248
8.3.5 為不規則按鈕添加背景圖像 249
8.3.6 實現按鈕的狀態背景圖像 250
8.3.7 實現添加按鈕標題及框線的功能 251
8.3.8 實現繪製按鈕的功能 253
8.3.9 處理按鈕的滑鼠事件 254
8.3.10 滑鼠狀態決斷及點測試功能的實現 255
8.3.11 自定義不規則按鈕的實現實例 256
8.4 實現音樂播放器的關鍵技術 258
8.4.1 active movie control object控制項 258
8.4.2 音樂播放器最小化到托盤的實現方法 260
8.5 音樂播放器的界面設計 262
8.5.1 創建播放器工程 262
8.5.2 設計並載入播放器背景圖像 263
8.5.3 定製並添加不規則按鈕 264
8.6 音樂播放器的功能設計與實現 265
8.6.1 設計播放器的屬性變數 265
8.6.2 利用嚮導添加功能函式 266
8.6.3 實現打開音頻檔案的功能 266
8.6.4 實現開始播放音樂的功能 267
8.6.5 實現暫停播放音樂的功能 267
8.6.6 實現停止播放音樂的功能 268
8.6.7 實現循環播放音樂的功能 268
8.6.8 實現最小化播放器的功能 268
8.6.9 實現關閉播放器的功能 269
8.6.10 處理托盤圖示訊息 269
8.6.11 實現播放器的拖動功能 270
8.6.12 實現播放器的音量控制功能 270
8.6.13 繪製播放器界面 271
8.6.14 監控音樂的播放器進度 273
8.7 小結 274
第9章 視頻播放器(directshow技術) 275
教學視頻:37分鐘
9.1 視頻播放器簡介 275
9.1.1 視頻播放器功能總述 275
9.1.2 打開視頻檔案 276
9.1.3 播放控制功能簡介 276
9.1.4 視頻播放器的技術簡介 277
9.2 擴展cstatic控制項類 277
9.2.1 重寫presubclasswindow()函式 278
9.2.2 重寫defwindowproc()函式 279
9.2.3 實現控制項的拖曳功能 280
9.3 擴展csliderctrl控制項類 281
9.4 directshow在vc++ 6.0下的環境搭建 282
9.4.1 directshow的安裝環境 282
9.4.2 directshow的參考文檔 282
9.4.3 編譯baseclasses 282
9.4.4 配置directshow針對所有項目的環境 283
9.4.5 引入項目所需要的directshow庫檔案 284
9.5 directshow簡介 284
9.5.1 directx組件簡介 285
9.5.2 directshow系統組成 285
9.5.3 directshow開發簡單媒體播放器的過程 287
9.6 directshow接口管理類 288
9.6.1 實例化過濾器圖表管理器 289
9.6.2 創建過濾器圖表 290
9.6.3 過濾器圖表中多媒體數據流方法的接口 290
9.6.4 處理過濾器圖表的事件接口 291
9.6.5 視頻特性設定接口 292
9.6.6 音頻流的音量和平衡控制接口 293
9.6.7 播放器視窗的屬性設定接口 294
9.6.8 搜尋數據流位置和設定播放速率的接口 295
9.6.9 釋放接口指針 296
9.7 工具條及狀態欄模組的實現 297
9.7.1 工具條及狀態欄模組界面的設計與實現 298
9.7.2 添加界面控制項變數 298
9.7.3 綁定過濾器圖表管理器 298
9.7.4 初始化工具列 299
9.7.5 調整工具列的位置 300
9.7.6 繪製狀態欄 300
9.7.7 實現進度條功能 302
9.7.8 實現聲音控制功能 303
9.7.9 功能按鈕使能控制 303
9.8 播放器主窗體的設計與實現 303
9.8.1 播放器主窗體的界面設計與實現 304
9.8.2 主窗體初始化模組的設計與實現 305
9.8.3 播放視窗訊息處理模組的設計與實現 307
9.8.4 選單訊息處理模組的設計與實現 311
9.8.5 工具列控制窗體訊息處理模組的實現 318
9.9 小結 318
第10章 區域網路聊天工具(socket+tcp+自定義訊息+圖像組合框) 319
教學視頻:33分鐘
10.1 區域網路聊天工具簡介 319
10.1.1 視頻播放器功能簡介 319
10.1.2 視頻播放器技術簡介 320
10.2 控制項知識 321
10.2.1 點陣圖按鈕cbitmapbutton 321
10.2.2 ip編輯框 325
10.2.3 圖像列表控制項 328
10.2.4 圖像組合框 330
10.3 socket簡介 332
10.4 socket常用數據類型 332
10.4.1 socket類型數據 333
10.4.2 word類型數據 333
10.4.3 wsadata類型及lpwsadata類型 333
10.4.4 sockaddr_in及in_addr類型數據 334
10.4.5 sockaddr類型 334
10.5 socket常用函式 335
10.5.1 初始化socket環境 335
10.5.2 使用socket()函式實現創建套接字功能 335
10.5.3 使用setsockopt()函式實現設定socket的屬性功能 336
10.5.4 使用closesocket()函式實現關閉套接字功能 336
10.5.5 使用bind()函式實現地址綁定功能 336
10.5.6 使用listen()函式實現監聽連線埠功能 336
10.5.7 使用accept()函式實現接收連線功能 337
10.5.8 使用connect()函式實現連線伺服器功能 337
10.5.9 使用send()函式實現傳送數據功能 338
10.5.10 使用rect()函式實現接收數據功能 338
10.6 csocket的封裝 339
10.7 伺服器端模組的設計與實現 340
10.7.1 伺服器端模組界面設計與實現 340
10.7.2 伺服器模組的功能設計與實現 342
10.8 客戶端模組的設計與實現 347
10.8.1 客戶端界面的設計與實現 348
10.8.2 客戶端功能的設計與實現 349
10.9 小結 353
第11章 截屏工具(動態程式庫+鍵盤鉤子+游標捕獲+類橡皮類crecttracker) 354
教學視頻:25分鐘
11.1 截屏工具簡介 354
11.1.1 主界面使用簡介 354
11.1.2 截圖模組簡介 355
11.2 動態程式庫 356
11.2.1 dll技術簡介 356
11.2.2 vc++ 6.0開發dll實例 357
11.3 鉤子技術 359
11.3.1 鉤子技術簡介 359
11.3.2 鍵盤鉤子dll的實現 361
11.3.3 鍵盤鉤子dll的調用 363
11.4 crecttracker技術簡介 364
11.4.1 crecttracker類的常用數據變數 364
11.4.2 crecttracker類的常用成員函式 365
11.4.3 crecttracker類的套用實例 366
11.5 功能控制模組的設計與實現 369
11.5.1 功能控制模組的界面設計及實現 369
11.5.2 截屏模組跳轉功能的實現 372
11.5.3 控制模組最小化到托盤功能的實現 372
11.5.4 控制模組在托盤中訊息處理功能的實現 373
11.5.5 關閉截屏工具功能的實現 373
11.5.6 捕獲鍵盤鉤子訊息功能的實現 374
11.6 截屏主功能模組的設計與實現 375
11.6.1 信息提示框的設計與實現 375
11.6.2 截圖模組主窗體的設計與實現 379
11.6.3 截圖功能的設計與實現 384
11.7 小結 389
第12章 掃雷遊戲(定時器+gdi+數字時鐘) 390
教學視頻:41分鐘
12.1 掃雷遊戲簡介 390
12.1.1 遊戲界面簡介 390
12.1.2 遊戲規則及方法簡介 391
12.2 遊戲系統資源 392
12.2.1 選單資源 392
12.2.2 點陣圖資源 392
12.2.3 聲音資源 394
12.3 遊戲初始化及遊戲界面繪製 394
12.3.1 初始化遊戲變數 397
12.3.2 初始化遊戲 400
12.3.3 繪製遊戲界面 401
12.4 遊戲功能控制及使用說明的實現 405
12.4.1 遊戲選單選項的功能實現 405
12.4.2 幫助選單選項的功能實現 408
12.4.3 選單選項的選中狀態控制函式 409
12.5 遊戲與用戶的互動 411
12.5.1 滑鼠單擊事件的處理 411
12.5.2 滑鼠左鍵抬起事件的處理 412
12.5.3 滑鼠左右鍵同時按下事件的處理 415
12.5.4 滑鼠左右鍵同時按下後滑鼠抬起事件的處理 416
12.5.5 滑鼠右鍵按下事件的處理 417
12.5.6 滑鼠右鍵抬起事件的處理 418
12.6 遊戲結果處理函式 419
12.7 掃雷英雄榜模組的實現 421
12.7.1 註冊表簡介 421
12.7.2 vc++對註冊表的操作 421
12.7.3 註冊表在本實例中的套用 423
12.7.4 查詢英雄榜數據 425
12.7.5 英雄榜新紀錄的更新模組 427
12.8 小結 428
第13章 串口調試器(串口編程+訊息+多執行緒) 429
教學視頻:38分鐘
13.1 串口調試器簡介 429
13.1.1 串口調試器界面簡介 429
13.1.2 串口設定功能簡介 430
13.1.3 數據收發功能簡介 430
13.1.4 情景模式簡介 431
13.1.5 數據保存功能簡介 432
13.2 圖示工具列 433
13.2.1 載入工具列圖像資源 433
13.2.2 添加工具列資源 434
13.2.3 創建工具列實例 434
13.2.4 為工具列添加圖像資源關聯 435
13.2.5 為工具列添加提示信息 435
13.3 分組單選按鈕 437
13.3.1 創建單選按鈕測試工程 437
13.3.2 修改單選按鈕屬性 437
13.3.3 添加單選按鈕關聯變數 438
13.3.4 檢測單選按鈕效果 438
13.4 串口基礎知識 439
13.4.1 串口簡介 439
13.4.2 串口通信簡介 439
13.5 串口通信編程基礎 440
13.5.1 打開串口 441
13.5.2 配置串口 442
13.5.3 讀寫串口 445
13.5.4 關閉串口 448
13.6 自定義串口類 449
13.6.1 構造及析構函式的實現 450
13.6.2 串口打開函式的實現 451
13.6.3 processerrormessage()函式的實現 453
13.6.4 串口執行緒函式的實現 454
13.6.5 串口執行緒監控函式的實現 456
13.6.6 串口關閉函式的實現 457
13.6.7 讀取串口數據函式的實現 457
13.6.8 寫串口函式的實現 458
13.6.9 數據傳送函式的實現 460
13.7 主窗體的界面設計 460
13.7.1 主界面布局設計 460
13.7.2 主界面選單的設計 461
13.7.3 組合框顯示控制及初始化 462
13.7.4 單選按鈕的控制及初始化 462
13.7.5 複選框的控制及初始化 463
13.7.6 添加控制項關聯變數 463
13.8 配置窗體的設計與實現 463
13.8.1 配置窗體的界面設計 464
13.8.2 設定串口控制部分的組合框 464
13.8.3 控制項添加關聯變數 468
13.9 主窗體選單及工具列模組的功能實現 469
13.9.1 串口開關控制功能的實現 469
13.9.2 串口的屬性設定 471
13.9.3 將接收到的數據保存到檔案中 472
13.9.4 計數清零 473
13.10 接收數據模組的功能實現 474
13.10.1 接收數據顯示控制模組 474
13.10.2 接收數據處理模組 476
13.11 傳送數據模組的功能實現 478
13.11.1 傳送數據控制功能的實現 478
13.11.2 傳送數據操作的控制功能 479
13.12 小結 482
第14章 列印工具(文檔視圖+設備環境上下文) 483
教學視頻:18分鐘
14.1 列印編程基礎知識 483
14.1.1 通用列印對話框 483
14.1.2 設備環境上下文 485
14.1.3 視圖列印 490
14.1.4 保存和維護列印作業 491
14.2 列印模組設計及功能展示 493
14.2.1 列印工具模組功能展示 493
14.2.2 列印工具程式的流程和原理 493
14.3 列印工具 495
14.3.1 創建列印模組工程 496
14.3.2 創建各個功能類 496
14.3.3 控制列印對話框 497
14.3.4 創建列印視圖 501
14.3.5 創建列印預覽視圖 504
14.3.6 實現列印列表功能 505
14.4 小結 509
第15章 監控技術(進程+opencv) 510
教學視頻:26分鐘
15.1 監控技術背景相關知識 510
15.2 本地監控 510
15.2.1 windows常用系統性能計數器對象簡介 510
15.2.2 使用性能計數器對象 511
15.2.3 本地監控示例(cpu使用率) 512
15.2.4 本地監控示例——各進程cpu占用率 514
15.3 遠程監控——遠程攝像頭實例 518
15.3.1 遠程監控實現原理與邏輯流程 518
15.3.2 遠程攝像頭——opencv安裝配置 518
15.3.3 封裝好的網路傳輸單元——類介紹 521
15.3.4 封裝好的網路傳輸單元——類使用(服務方) 522
15.3.5 封裝好的網路傳輸單元——類使用(客戶方) 523
15.3.6 遠程攝像頭——創建客戶方工程 524
15.3.7 遠程攝像頭——創建監控方工程 529
15.4 小結 531
第3篇 項目案例實戰
第16章 人事管理系統(odbc+sql server+多執行緒) 534
教學視頻:57分鐘
16.1 人事管理系統簡介 534
16.1.1 用戶登錄模組簡介 534
16.1.2 主界面簡介 534
16.1.3 員工管理模組簡介 535
16.1.4 保險管理模組簡介 539
16.1.5 契約管理模組簡介 539
16.1.6 部門管理模組簡介 540
16.2 實現人事管理系統的關鍵技術 541
16.2.1 odbc簡介 541
16.2.2 創建odbc數據源 541
16.2.3 odbc在vc++中的套用 543
16.3 人事管理系統資料庫設計 547
16.3.1 需求分析 547
16.3.2 概要設計 548
16.3.3 資料庫設計 548
16.4 人事管理系統主界面的設計與實現 552
16.4.1 主界面的設計與實現 552
16.4.2 主界面的功能設計與實現 553
16.5 綜合信息管理模組設計與實現 555
16.5.1 社保管理模組的設計與實現 555
16.5.2 契約管理模組的設計與實現 562
16.5.3 部門管理模組的設計與實現 566
16.6 員工信息管理模組設計與實現 566
16.6.1 員工管理主窗體的設計與實現 566
16.6.2 員工信息管理模組的設計與實現 570
16.6.3 入職管理模組的設計與實現 582
16.6.4 轉正管理模組的設計與實現 584
16.6.5 離職管理模組的設計與實現 587
16.6.6 借調管理及調動管理模組的設計與實現 591
16.6.7 月末統計管理模組的設計與實現 593
16.7 小結 597
第17章 電子相冊(雙緩繪圖+gdi+gdi+) 598
教學視頻:61分鐘
17.1 電子相冊簡介 598
17.1.1 相冊的管理模組 598
17.1.2 新建相冊模組 599
17.1.3 相冊瀏覽模組 599
17.1.4 電子相冊的技術簡介 601
17.2 點陣圖按鈕 601
17.2.1 設定按鈕屬性 601
17.2.2 載入按鈕點陣圖資源 601
17.2.3 將點陣圖資源設定為按鈕的背景圖片 602
17.3 仿木質桌面的全螢幕對話框 602
17.3.1 設定對話框全螢幕顯示 602
17.3.2 為對話框設計並載入木質效果的背景圖資源 603
17.3.3 編碼實現圖像作為對話框的背景圖像 603
17.4 設計個性滑鼠游標 604
17.4.1 設計並載入游標資源 604
17.4.2 設定滑鼠左鍵按下時的游標 604
17.5 gdi+的基礎知識 605
17.6 vc++與gdi+開發環境的搭建 607
17.6.1 下載解壓gdi+開發包 607
17.6.2 設定include及lib目錄 607
17.6.3 添加相關的宏定義 607
17.6.4 添加相關的庫檔案 608
17.6.5 測試gdi+搭建的環境 608
17.7 gdi+與gdi共同實現雙緩衝繪圖 610
17.7.1 重載窗體的onpaint()函式 610
17.7.2 無雙緩衝的效果 610
17.7.3 利用雙緩衝解決閃屏問題 611
17.8 利用gdi+實現翻頁效果 612
17.9 電子相冊的模組分析 617
17.9.1 相冊管理模組的設計與實現 617
17.9.2 新建相冊模組的設計與實現 622
17.9.3 電子相冊瀏覽模組的設計與實現 625
17.10 小結 640
第18章 超市管理系統(ado+sql+access) 641
教學視頻:60分鐘
18.1 超市管理系統簡介 641
18.1.1 用戶登錄模組簡介 641
18.1.2 前台銷售模組簡介 641
18.1.3 後台員工管理模組簡介 642
18.1.4 後台倉庫管理模組簡介 643
18.1.5 後台票據管理模組簡介 643
18.1.6 後台貨物管理模組簡介 643
18.1.7 後台營業統計管理模組簡介 644
18.2 實現超市管理系統的關鍵技術 645
18.2.1 ado簡介 645
18.2.2 ado基礎 645
18.2.3 ado在vc++中的套用 646
18.2.4 ado的封裝類 649
18.3 超市管理系統資料庫設計 651
18.3.1 需求分析 652
18.3.2 概要設計 652
18.3.3 資料庫設計 653
18.4 超市管理系統前台銷售模組設計與實現 655
18.4.1 登錄模組的界面設計與實現 655
18.4.2 登錄模組的功能設計與實現 656
18.4.3 銷售模組的界面設計與實現 659
18.4.4 銷售模組的功能設計與實現 662
18.5 超市管理系統後台管理模組設計與實現 670
18.5.1 員工管理模組的設計與實現 670
18.5.2 倉庫管理模組的設計與實現 675
18.5.3 票據管理模組的設計與實現 678
18.5.4 商品管理模組的設計與實現 679
18.5.5 營業統計模組的設計與實現 679
18.6 小結 681
前言
為什麼要寫這本書?
在各種軟體行業,Visual C++(簡稱VC++)的核心技術得到了廣泛套用。目前市場上關於VC++的圖書不少,但大多都是一些講解基礎知識的入門圖書,真正從實戰出發,通過模組開發和項目開發講解的書卻很少。
為了讓讀者能夠深入、透徹地理解核心技術及其廣泛套用,本書在具體編寫時以VC++開發時經常會遇到的典型模組和項目開發為主線,同時還穿插了各種核心技術和解決方案的詳細講解。通過本書中的13個模組和3個完整的項目案例,可以使初學者快速地掌握VC++應用程式開發,並對VC++應用程式的主流開發工具及相關技術有一個全面、直觀和系統的認識,掌握各種解決方案的精髓。本書中的大量功能模組通用性強,可以用在完整的軟體項目開發中。
本書有何特色?
1.附帶多媒體語音教學視頻,提高學習效率
為了便於讀者理解本書內容,提高學習效率,作者專門為本書每一章內容都錄製了大量的多媒體語音教學視頻。這些視頻和本書涉及的原始碼一起收錄於配書光碟中。
2.涵蓋VC++的各種熱門開發技術
本書結合典型模組和項目案例開發,詳細介紹了圖形圖像、執行緒、訊息、FTP技術、串口通信、網路通信、資料庫、GDI、GDI+、DirectShow、動態程式庫、OpenCV、鉤子等技術。這些都是VC++中非常熱門的開發技術。
4.模組驅動,套用性強
本書提供了13個VC++開發的典型模組。這些模組都是VC++開發中經常要用到的模組,有很強的實用性。這些模組相互獨立,但也是逐漸增加難度,開發人員可以根據需要查閱和參考。
5.項目案例典型,實戰性強
本書以經典模組和完整系統的項目為背景,書中最後一篇提供了3個項目實戰案例。這些案例以現實職場中所開發的實際項目為背景,具有較強的實用性,而且這些案例分別使用不同的技術實現,便於讀者融會貫通地理解書中所介紹的技術。
6.提供完善的技術支持和售後服務
本書提供了專門的技術支持信箱:。讀者在閱讀本書的過程中有任何疑問,都可以通過該信箱獲得幫助。
本書內容及知識體系
第1篇 Visual C++項目開發基礎(第1、2章)
本篇主要對VC++集成開發環境進行簡單的介紹,並對C++語言基礎進行概略的講解。主要內容包括VC++ 6.0程式設計簡介、C++編程基礎。這些內容都是VC++項目開發的必要基礎。
第2篇 典型模組開發(第3~15章)
本篇主要介紹VC++開發中經常要用到的13個典型模組。主要內容包括桌面時鐘、電子郵件收發管理器、系統資源管理器、系統任務管理工具、FTP客戶端程式、音樂播放器、視頻播放器、區域網路聊天工具、截屏工具、掃雷遊戲、串口調試器、列印工具和監控模組等。這13個典型模組注重編程思想與實際開發相結合,每個模組都可以用於實際的開發中。
第3篇 項目案例實戰(第16~18章)
. 本篇主要介紹3個實際開發的項目案例,包括人事管理系統(ODBC+SQL Server+多執行緒)、電子相冊(雙緩繪圖+GDI+GDI+)及超市管理系統(ADO+SQL+Access)。這3個系統分別用不同的技術組合實現,講解時對需求分析、資料庫設計、持久層設計、業務層設計和表示層設計,都給出了完整的思路和實現過程。
配書光碟內容介紹
為了方便讀者閱讀本書,本書附帶1張DVD光碟。內容如下:
* 書中涉及的所有模組與項目案例的原始碼;
* 本書每章內容的多媒體語音教學視頻;
* 免費贈送的Visual C++開發教學視頻及相關電子書。
適合閱讀本書的讀者
* 需要全面學習Visual C++開發技術的人員;
* 廣大VC++開發程式設計師;
* C++/C程式設計師;
* C++高級工程師;
* 希望提高項目開發水平的人員;
* 專業培訓機構的學員;
* 軟體開發項目經理;
* 需要一本案頭必備查詢手冊的人員。
閱讀本書的建議
* 沒有VC++集成開發環境基礎的讀者,建議從第1章順次閱讀並演練每一個實例。
* 有一定VC++集成開發基礎的讀者,可以根據實際情況有重點地選擇閱讀各個模組和完整系統。
* 對於每一個模組和完整系統,讀者先自己思考一下實現的思路然後再閱讀,這樣學習效果更好。
* 如果對模組或完整系統的內容閱讀一遍後仍然不理解,可以結合光碟中的多媒體視頻講解動手實現一次,這樣理解就會更加深刻。
本書作者及編委會成員
本書由戴晟暉、楊國祥、陳國建主筆編寫。其他參與編寫的人員有王征、王石、姜海英、邵毅、張路平、李臻、武勇、徐寧、劉玉珊、麻雪、吝曉寧、范永龍、趙盟、傅靖、李佳、劉丹、肖冰、王行恆、馮浩楠、紀超、段桂東、黃寶生、張珍珍、石淑珍、陳超、牛曉輝、劉聰、任瀟、張雙、於志華、李秀勁、李勝美、蔡文仙、杜陽陽、吳興亮、陳水望、黃任楨、梅婷婷、皇波、白雪蛟。在此一併表示感謝!
本書編委會成員有歐振旭、陳杰、陳冠軍、頊宇峰、張帆、陳剛、程彩紅、毛紅娟、聶慶亮、王志娟、武文娟、顏盟盟、姚志娟、尹繼平、張昆、張薛。
編著者