內容簡介
本書從國中級用戶的角度出發,以通俗易懂的語言、科學合理的設計,配合豐富多彩的實例,全面講述了使用Visual C++ 6.0進行程式開發的必備知識和技能。全書共分為24堂課,主要包括Visual C++開發環境、C++語言基礎、運算符與表達式、流程控制語句、數組的套用、函式的套用、面向對象程式設計、對話框程式設計、Windows通用對話框、選單、工具列和狀態欄、常用控制項、高級控制項、檔案操作、圖形圖像程式設計、列印控制、掌握資料庫操作、掌握進程與執行緒技術、動態程式庫、網路編程、程式調試、螢幕錄像模組、人事考勤管理系統和企業簡訊群發系統。
本書適合有志於從事軟體開發的初學者、高校計算機相關專業學生,也可作為軟體開發人員的參考手冊。
本書通過教學視頻、實例訓練、綜合套用、項目實踐、自我測試、行動指南逐步深入和強化訓練等方式,並輔之以心理勵志,來持續激發讀者主動學習、自發學習。
本書給出了340個小型實例,196個綜合套用,6個項目案例(部分在光碟中),各類技巧、試驗200餘個,測試題目210個,以方便讀者訓練、測試和快速提升。
本書DVD光碟給出了120集(356段)多媒體教學視頻講解,每個實例都給出了相應的源程式,可直接複製源碼學習或套用。
前言
前 言
Visual C++6.0是由微軟公司推出的一種基於Windows環境的可視化編程工具,也是微軟Visual Studio家族中的一款重量級產品。利用Visual C++可以開發資料庫管理系統、多媒體應用程式、網路應用程式、遊戲軟體,甚至底層的驅動程式,這使得Visual C++迅速發展成為套用最廣泛的編程工具之一。
本書內容
學、練、用到精通只需24堂課。本書從國中級用戶的角度,通過24堂課全面講述了使用Visual C++ 6.0進行程式開發的必備知識和技能。內容安排如下圖所示。
第1部分 基礎篇(第1~7堂課):講述了Visual C++開發環境,C++語言基礎,運算符與表達式,流程控制語句,數組的套用,函式的套用和面向對象程式設計。這些都是Visual?C++的基礎知識,學通本篇,再學其他篇相信一定很輕鬆。
第2部分 提高篇(第8~13堂課):講述了使用Visual C++ 6.0進行應用程式開發的各種常用技術,包括對話框程式設計,Windows通用對話框,選單,工具列和狀態欄,常用控制項和高級控制項。通過這一篇的學習,讀者可以掌握對話框、選單、工具列和控制項等技術,開發小型實用工具。
第3部分 高級篇(第14~21堂課):講述了檔案操作,圖形圖像程式設計,列印控制,掌握資料庫操作,掌握進程與執行緒技術,動態程式庫,網路編程和程式調試。通過這一篇的學習,讀者可以掌握檔案、資料庫、網路等技術,開發小型網路程式和資料庫應用程式。
第4部分 實戰篇(第22~24堂課):講述了螢幕錄像模組、人事考勤管理系統和企業簡訊群發系統3個完整的項目實例設計全過程。通過該篇的學習,讀者可以積累項目開發經驗。
本書特點
* 配備了120集(356段)多媒體教學視頻講解。
本書DVD光碟提供了覆蓋全書的語音視頻講解,讀者可以通過視頻快速、直觀、輕鬆地學習。
* 每一堂課都結合“照貓畫虎”、“情景套用”。
為了提高讀者的動手能力,激發學習興趣,本書提供了“照貓畫虎”和“情景套用”欄目,根據實例模仿著去做是學習編程的最快方式。
* 每一堂課都結合“成功故事”和“行動指南”,時刻激勵和鼓舞讀者。
在學習中,尤其是最初的一段時間內,非常有必要不斷地對學習者加以激勵和鼓舞。讓他們堅持下來是至關重要的,因此書中不間斷地用一些勵志故事和“行動指南”去鼓舞其信心。
* 光碟提供了本書的所有代碼,即使只有一行。
本書光碟提供了所有實例的原始碼,哪怕只有一行。讀者可以直接複製,以提高學習效率。
* 本書所有習題都給出了答案,部分習題還有解析,讀者可以對照查閱。
讀者對象
(1)有志於軟體開發的初學者 (2)高等院校計算機相關專業的老師和學生
(3)準備從事軟體開發的求職者 (4)參與畢業設計的學生
(5) 初、中級程式開發人員 (6) 程式測試及維護人員
本書作者
本書由明日科技組織編寫,參加編寫的程式設計師有劉銳寧、李偉明、梁水、王國輝、賽奎春、潘凱華、劉欣、李慧、陳丹丹、高春艷、李偉、孫秀梅、楊麗、劉玲玲、朱曉、劉燕、陳英、李鑫、李賀、肖鑫、張麗娜、沈博、劉冠男、曹飛飛、李麗、聶喜婷、王明昭、張英豪、王小科、趙會東、白偉明等。
由於水平有限,書中疏漏和不足之處在所難免,懇請廣大讀者朋友批評指正。
技術支持與服務
最後,感謝您選擇本書,希望本書能成為您編程路上的領航者。
祝讀書快樂!
特別提醒:
親愛的讀者朋友,由於近期紙張價格和印製成本大幅上漲,為不增加讀者朋友的負擔,又不減少書的內容,本書的最後幾章內容不得不放在配書光碟中(參見目錄),由此給您帶來了不便,在此深表歉意。
編 者
圖書目錄
目 錄
第1部分 基礎篇
第1堂課 Visual C++開發環境 3
視頻講解:115分鐘
1.1 Visual C++ 6.0概述 4
1.2 熟悉Visual C++ 6.0開發環境 4
1.2.1 選單介紹 5
1.2.2 工具列介紹 12
1.2.3 Visual C++ 6.0工作區視窗介紹 14
1.2.4 代碼編輯視窗介紹 15
1.2.5 Visual C++ 6.0 控制項面板介紹 16
1.2.6 輸出視窗介紹 16
1.3 使用MSDN 17
1.4 照貓畫虎——基本功訓練 18
1.4.1 基本功訓練1——自定義工具列 18
1.4.2 基本功訓練2——調整代碼文本顏色 19
1.4.3 基本功訓練3——批量注釋 20
1.4.4 基本功訓練4——向工程中載入圖示
資源 23
1.4.5 基本功訓練5——在工程中添加CPP
檔案 23
1.5 情景套用——拓展與實踐 24
1.5.1 情景套用1——編寫加法計算器 24
1.5.2 情景套用2——在控制台輸出當前日期 25
1.5.3 情景套用3——輸出帶框線的字元串 25
1.5.4 情景套用4——在控制台接收用戶
輸入的用戶名 26
1.5.5 情景套用5——輸出商品價格和
購買數量 27
1.6 自我測試 28
1.7 行動指南 29
1.8 成功故事——甩手的故事 30
第2堂課 C++語言基礎 31
視頻講解:157分鐘
2.1 程式設計基本要素 32
2.1.1 認識標識符 32
2.1.2 關鍵字介紹 32
2.1.3 常量的定義和使用 33
2.1.4 變數的定義和使用 33
2.2 代碼編寫規範 34
2.2.1 合理使用注釋 34
2.2.2 統一代碼縮進 35
2.2.3 代碼換行 36
2.2.4 合理使用空格 37
2.2.5 命名規則 37
2.3 數據類型 38
2.3.1 簡單數據類型介紹 39
2.3.2 布爾類型的使用 40
2.3.3 套用枚舉類型 40
2.3.4 定義結構體類型 41
2.3.5 共用體類型介紹 43
2.3.6 使用指針類型 44
2.3.7 認識引用類型 46
2.3.8 自定義類型 47
2.4 照貓畫虎——基本功訓練 47
2.4.1 基本功訓練1——定義整型變數
並賦初值 47
2.4.2 基本功訓練2——使用枚舉類型輸出
當前星期 48
2.4.3 基本功訓練3——定義操作員
信息結構體 49
2.4.4 基本功訓練4——使用取值運算符
訪問指針數據 50
2.4.5 基本功訓練5——使用帶參數的宏定義 51
2.5 情景套用——拓展與實踐 52
2.5.1 情景套用1——利用#輸出圖形 52
2.5.2 情景套用2——簡單的字元加密 52
2.5.3 情景套用3——輸出電視機的狀態信息 53
2.5.4 情景套用4——簡歷的快速複製 54
2.5.5 情景套用5——繪製餘弦曲線 55
2.6 自我測試 56
2.7 行動指南 58
2.8 成功故事——“防毒王”:王江民 59
第3堂課 運算符與表達式 61
視頻講解:88分鐘
3.1 運算符 62
3.1.1 賦值運算符 62
3.1.2 算術運算符 63
3.1.3 關係運算符 64
3.1.4 邏輯運算符 65
3.1.5 遞增遞減運算符 66
3.1.6 位運算符 67
3.1.7 sizeof運算符 70
3.1.8 new和delete運算符 71
3.2 結合性與優先權 72
3.3 表達式 73
3.3.1 逗號表達式的使用 74
3.3.2 條件表達式 74
3.4 照貓畫虎——基本功訓練 75
3.4.1 基本功訓練1——計算學生的平均身高 75
3.4.2 基本功訓練2——判斷是否為回
文字元串 75
3.4.3 基本功訓練3——統計各種字元個數 76
3.4.4 基本功訓練4——實現兩個變數值的
互換 77
3.4.5 基本功訓練5——使用條件運算符
判斷性別 78
3.5 情景套用——拓展與實踐 79
3.5.1 情景套用1——整數加減法練習 79
3.5.2 情景套用2——計算圓面積 80
3.5.3 情景套用3——數鴨子問題求解 81
3.5.4 情景套用4——比較兩個數的大小 82
3.5.5 情景套用5——驗證用戶名 82
3.6 自我測試 83
3.7 行動指南 85
3.8 成功故事——國中站長的
創業故事 86
第4堂課 流程控制語句 87
視頻講解:115分鐘
4.1 語句的構成 88
4.2 複合語句 88
4.3 分支語句 90
4.3.1 使用if語句實現判斷 90
4.3.2 多條件判斷的switch語句 94
4.4 循環語句 98
4.4.1 for語句 98
4.4.2 while語句實現循環 101
4.4.3 使用do while語句實現至少循環一次 103
4.5 其他控制語句 103
4.5.1 使用goto語句跳轉到指定語句 103
4.5.2 用於返回數據的return語句 105
4.5.3 使用exit語句跳出當前進程 106
4.6 照貓畫虎——基本功訓練 106
4.6.1 基本功訓練1——李白喝酒問題 106
4.6.2 基本功訓練2——促銷商品的
折扣計算 107
4.6.3 基本功訓練3——燈塔數量 109
4.6.4 基本功訓練4——小球下落 110
4.6.5 基本功訓練5——判斷名次 111
4.7 情景套用——拓展與實踐 112
4.7.1 情景套用1——購物街中的商品
價格競猜 112
4.7.2 情景套用2——上帝創世的秘密 113
4.7.3 情景套用3——再現乘法口訣表 115
4.7.4 情景套用4——老師分糖果 116
4.7.5 情景套用5——猴子吃桃 117
4.8 自我測試 118
4.9 行動指南 121
4.10 成功故事——締造華人的
矽谷傳奇:楊致遠 122
第5堂課 數組的套用 123
視頻講解:51分鐘
5.1 一維數組 124
5.1.1 一維數組的定義 124
5.1.2 一維數組的初始化 124
5.1.3 一維數組元素的引用 125
5.1.4 一維數組的套用 125
5.2 二維數組和多維數組 127
5.2.1 二維數組和多維數組的定義 127
5.2.2 二維數組和多維數組的初始化 128
5.2.3 二維數組和多維數組的引用 129
5.2.4 二維數組和多維數組的套用 129
5.3 指針與數組 131
5.3.1 指向數組的指針 131
5.3.2 指針數組 132
5.4 照貓畫虎——基本功訓練 134
5.4.1 基本功訓練1——定義一個整型數組
並初始化 134
5.4.2 基本功訓練2——動態創建指定大小的
字元型數組 134
5.4.3 基本功訓練3——通過二維數組
存儲天氣溫度 135
5.4.4 基本功訓練4——通過指針輸出數組
中的元素 136
5.4.5 基本功訓練5——數組的複製 136
5.5 情景套用——拓展與實踐 137
5.5.1 情景套用1——遍歷二維數組 137
5.5.2 情景套用2——數組冒泡排序法 138
5.5.3 情景套用3——順序查找數組中元素 139
5.5.4 情景套用4——有序數組的折半查找 140
5.5.5 情景套用5——向數組中插入元素 142
5.6 自我測試 144
5.7 行動指南 145
5.8 成功故事——征途巨人史玉柱的
第一桶金 146
第6堂課 函式的套用 147
視頻講解:149分鐘
6.1 函式的定義與使用 148
6.1.1 定義和調用函式 148
6.1.2 函式參數的默認值 150
6.1.3 數組作為函式參數 151
6.1.4 指針或引用作為函式參數 154
6.1.5 省略號作為函式參數 156
6.1.6 內聯函式 157
6.1.7 重載函式 158
6.1.8 函式指針 160
6.2 作用域和生命期 163
6.2.1 局部作用域 163
6.2.2 全局作用域 164
6.2.3 定義和使用命名空間 165
6.3 函式模板 169
6.3.1 定義和使用函式模板 169
6.3.2 重載函式模板 170
6.4 照貓畫虎——基本功訓練 171
6.4.1 基本功訓練1——通過默認值實現3個
數相加 171
6.4.2 基本功訓練2——在數組中查找指定
數據並通過參數返回數據索引 172
6.4.3 基本功訓練3——通過函式輸出存
儲在數組中的商品信息 173
6.4.4 基本功訓練4——利用函式重載實現
減法運算 174
6.4.5 基本功訓練5——使用函式模板進行
排序 175
6.5 情景套用——拓展與實踐 176
6.5.1 情景套用1——遍歷磁碟目錄 176
6.5.2 情景套用2——對學生成績進行排序 178
6.5.3 情景套用3——使用遞歸函式計算n的
階乘 179
6.5.4 情景套用4——通過函式回調輸出
查找數據 180
6.5.5 情景套用5——通過函式模板返回
數組中的最小值 181
6.6 自我測試 182
6.7 行動指南 184
6.8 成功故事——使計算機成為生活的
必需品 185
第7堂課 面向對象程式設計 187
視頻講解:243分鐘
7.1 類的概念與聲明 188
7.1.1 類的概念 188
7.1.2 類的聲明 188
7.2 對象的使用 189
7.2.1 對象的聲明與實例化 189
7.2.2 類與對象的關係 190
7.2.3 類成員的訪問 190
7.2.4 類成員的保護 190
7.3 構造函式與析構函式 192
7.3.1 構造函式與默認構造函式 192
7.3.2 複製構造函式 195
7.3.3 重載構造函式 196
7.3.4 析構函式 198
7.4 類的繼承 200
7.4.1 單一繼承 200
7.4.2 多重繼承 202
7.4.3 覆蓋成員函式 203
7.4.4 虛函式 204
7.4.5 純虛函式 207
7.5 類方法的使用 209
7.5.1 實現類的方法 209
7.5.2 內聯方法 211
7.5.3 靜態成員數據和靜態方法 211
7.5.4 友元類和友元方法 215
7.5.5 const方法 219
7.5.6 運算符重載 220
7.6 類模板的使用 222
7.6.1 類模板的聲明和實例化 222
7.6.2 類模板的實現 223
7.7 照貓畫虎——基本功訓練 224
7.7.1 基本功訓練1——通過構造函式初始化
學生信息 224
7.7.2 基本功訓練2——在析構函式中釋放
類中的資源 226
7.7.3 基本功訓練3——重載“=”運算符 227
7.7.4 基本功訓練4——對動物的行為實現
多態 228
7.7.5 基本功訓練5——通過類模板實現加法
計算器 229
7.8 情景套用——拓展與實踐 230
7.8.1 情景套用1——統計圖書的銷售量 230
7.8.2 情景套用2——計算幾何圖形的面積 231
7.8.3 情景套用3——利用複製構造函式簡化
實例創建 233
7.8.4 情景套用4——實現類對象的單模式
創建 234
7.8.5 情景套用5——利用適配器模式給汽車
增加GPS定位功能 235
7.9 自我測試 237
7.10 行動指南 238
7.11 成功故事——圖文世界的締造者 239
第2部分 提高篇
第8堂課 對話框程式設計 243
視頻講解:182分鐘
8.1 創建對話框應用程式 244
8.2 創建對話框 245
8.2.1 設計對話框資源 245
8.2.2 創建並顯示對話框 252
8.3 設定對話框屬性 260
8.3.1 使用屬性對話框設定對話框屬性 260
8.3.2 使用代碼設定對話框屬性 266
8.4 對話框布局 267
8.4.1 向對話框中添加控制項 267
8.4.2 調整控制項的Tab鍵順序 268
8.4.3 調整控制項至相同的大小 268
8.4.4 在對話框中對齊控制項 270
8.4.5 排列控制項 272
8.4.6 使用格線線進行界面布局 276
8.5 訪問對話框中的控制項 277
8.5.1 使用類嚮導為控制項關聯變數 277
8.5.2 利用控制項ID獲取控制項視窗指針 281
8.5.3 利用數據交換訪問控制項文本數據 282
8.6 設定對話框和應用程式圖示 283
8.7 向對話框中添加成員和成員函式 286
8.7.1 添加成員和成員函式 286
8.7.2 添加訊息處理函式 290
8.7.3 手動添加命令訊息處理函式 293
8.8 使用訊息對話框 293
8.9 照貓畫虎——基本功訓練 295
8.9.1 基本功訓練1——設定對話框的標題 295
8.9.2 基本功訓練2——遍歷對話框中的控制項 295
8.9.3 基本功訓練3——顯示歡迎窗體 296
8.9.4 基本功訓練4——在對話框關閉時
彈出確認視窗 297
8.9.5 基本功訓練5——無法通過Esc鍵
關閉窗體 297
8.10 情景套用——拓展與實踐 298
8.10.1 情景套用1——實現登錄對話框 298
8.10.2 情景套用2——始終在最上面的
窗體 299
8.10.3 情景套用3——如QQ般隱藏的
窗體 300
8.10.4 情景套用4——隱藏和顯示標題欄 301
8.10.5 情景套用5——在對話框中設定
控制項的提示信息 301
8.11 自我測試 303
8.12 行動指南 304
8.13 成功故事——世界第一人稱
射擊遊戲之父 305
第9堂課 Windows通用對話框 307
視頻講解:54分鐘
9.1 檔案對話框 308
9.1.1 檔案對話框的樣式 308
9.1.2 檔案對話框的調用 308
9.2 “查找/替換”對話框 310
9.2.1 “查找/替換”對話框樣式 310
9.2.2 “查找/替換”對話框調用 311
9.3 “字型”對話框 313
9.3.1 “字型”對話框樣式 314
9.3.2 “字型”對話框調用 314
9.4 “顏色”對話框 315
9.4.1 “顏色”對話框樣式 316
9.4.2 “顏色”對話框調用 316
9.5 “列印”對話框 317
9.5.1 “列印”對話框樣式 317
9.5.2 “列印”對話框調用 318
9.6 “頁面設定”對話框 320
9.6.1 “頁面設定”對話框樣式 320
9.6.2 “頁面設定”對話框調用 320
9.7 照貓畫虎——基本功訓練 321
9.7.1 基本功訓練1——打開檔案時對檔案
進行過濾 321
9.7.2 基本功訓練2——獲取“查找”對話框
中所要查找的字元串 322
9.7.3 基本功訓練3——輸出“字型”對話框屬
性信息 323
9.7.4 基本功訓練4——獲取“顏色”
對話框中用戶所選顏色值 324
9.7.5 基本功訓練5——獲取“頁面設定”
對話框中紙張大小 325
9.8 情景套用——拓展與實踐 326
9.8.1 情景套用1——可以顯示圖片預覽的
“打開”對話框 326
9.8.2 情景套用2——設定是否區分大
小寫 328
9.8.3 情景套用3——使用“字型”對話框
設定靜態文本字型 329
9.8.4 情景套用4——使用“顏色”對話框
設定矩形顏色 330
9.8.5 情景套用5——調用“列印”對話框
列印圖形內容 331
9.9 自我測試 333
9.10 行動指南 334
9.11 成功故事——微型部落格
Twitter創始人 334
第10堂課 選單 337
視頻講解:77分鐘
10.1 設計選單 338
10.1.1 在資源管理器中設計選單 338
10.1.2 選單屬性 339
10.1.3 設計選單加速鍵 341
10.1.4 為對話框設定選單 342
10.2 選單項的命令處理 343
10.2.1 實現選單命令 343
10.2.2 更新選單項複選標識 344
10.2.3 一個函式實現多個選單項 345
10.3 動態創建和修改選單 347
10.3.1 動態創建對話框選單 347
10.3.2 創建彈出式選單 350
10.3.3 禁用/啟用選單項 352
10.4 自繪選單 354
10.4.1 為選單項添加圖示 354
10.4.2 選單點陣圖背景 359
10.5 照貓畫虎——基本功訓練 361
10.5.1 基本功訓練1——彈出工具列右鍵
選單 361
10.5.2 基本功訓練2——選單左側顯示
導航條圖片 362
10.5.3 基本功訓練3——帶歷史信息的選單 363
10.5.4 基本功訓練4——動態設定
對話框選單 364
10.5.5 基本功訓練5——使用更新機制
控制選單可用性 364
10.6 情景套用——拓展與實踐 365
10.6.1 情景套用1——根據表中數據動態
生成選單 365
10.6.2 情景套用2——根據INI檔案
創建選單 366
10.6.3 情景套用3——將選單項的字型
設定為粗體 367
10.6.4 情景套用4——多國語言選單 368
10.6.5 情景套用5——系統列托盤彈出選單 369
10.7 自我測試 370
10.8 行動指南 371
10.9 成功故事——網際網路的點火人 372
第11堂課 工具列和狀態欄 375
視頻講解:67分鐘
11.1 工具列設計 376
11.1.1 工具列資源設計 376
11.1.2 工具列按鈕命令處理 379
11.1.3 動態創建工具列 380
11.1.4 為工具列設定工具提示功能 384
11.2 狀態欄設計 386
11.2.1 創建狀態欄 386
11.2.2 在狀態欄中顯示進度條 388
11.2.3 使狀態欄隨對話框的改變而改變 389
11.3 照貓畫虎——基本功訓練 390
11.3.1 基本功訓練1——根據選單
創建工具列 390
11.3.2 基本功訓練2——工具列按鈕
單選效果 392
11.3.3 基本功訓練3——在工具列中
添加編輯框 394
11.3.4 基本功訓練4——根據INI檔案
創建工具列 395
11.3.5 基本功訓練5——在狀態欄顯示時間 396
11.4 情景套用——拓展與實踐 397
11.4.1 情景套用1——根據表中數據動態
生成工具列 397
11.4.2 情景套用2——可調整按鈕位置的
工具列 399
11.4.3 情景套用3——帶背景的工具列 400
11.4.4 情景套用4——工具列左側顯示雙線 401
11.4.5 情景套用5——滾動字幕的狀態欄 402
11.5 自我測試 404
11.6 行動指南 405
11.7 成功故事——暴雪公司的領航者 405
第12堂課 常用控制項 407
視頻講解:110分鐘
12.1 靜態文本控制項StaticText 408
12.1.1 靜態文本控制項的主要屬性 408
12.1.2 CStatic類的主要方法 409
12.2 編輯框控制項EditBox 411
12.2.1 編輯框控制項的主要屬性 411
12.2.2 CEdit類的主要方法 413
12.3 按鈕控制項Button 416
12.3.1 按鈕控制項的主要屬性 416
12.3.2 CButton類的主要方法 417
12.4 複選框控制項CheckBox 419
12.4.1 複選框控制項的主要屬性 419
12.4.2 設定選中狀態 420
12.4.3 獲取選中狀態 420
12.5 單選按鈕控制項RadioButton 422
12.5.1 單選按鈕控制項的主要屬性 422
12.5.2 獲得單選按鈕中的文本 423
12.6 組合框控制項ComboBox 424
12.6.1 組合框控制項的主要屬性 424
12.6.2 CComboBox類的主要方法 425
12.7 列表框控制項ListBox 427
12.7.1 列表框控制項的主要屬性 427
12.7.2 CListBox類的主要方法 428
12.8 圖像控制項Picture 431
12.8.1 圖像控制項的主要屬性 431
12.8.2 顯示圖像 432
12.9 照貓畫虎——基本功訓練 433
12.9.1 基本功訓練1——具有分隔條的靜態
文本控制項 433
12.9.2 基本功訓練2——金額編輯框 434
12.9.3 基本功訓練3——向組合框中
插入數據 436
12.9.4 基本功訓練4——上下移動列表
項位置 437
12.9.5 基本功訓練5——動態載入圖像 438
12.10 情景套用——拓展與實踐 439
12.10.1 情景套用1——編輯框輸入時顯示
選擇列表 439
12.10.2 情景套用2——按鈕七巧板 440
12.10.3 情景套用3——QQ登錄式的用戶
選擇列表 443
12.10.4 情景套用4——自動調整組合框寬度 444
12.10.5 情景套用5——要提示才能看得見 445
12.11 自我測試 447
12.12 行動指南 448
12.13 成功故事——3D王國的開創者 449
第13堂課 高級控制項 451
視頻講解:119分鐘
13.1 圖像列表控制項(ImageList) 452
13.2 列表視圖控制項(ListControl) 455
13.2.1 列表視圖控制項的主要屬性 455
13.2.2 列表視圖控制項的主要方法 456
13.2.3 設定列表視圖背景點陣圖 459
13.2.4 使用列表視圖顯示表格數據 461
13.3 樹視圖控制項(TreeControl) 462
13.3.1 樹視圖控制項的主要屬性 462
13.3.2 樹視圖控制項的主要方法 462
13.3.3 使用樹視圖控制項顯示區域信息 466
13.4 進度條控制項(Progress) 467
13.4.1 進度條控制項的主要屬性 467
13.4.2 進度條控制項的主要方法 467
13.4.3 使用進度條顯示操作進度 468
13.5 標籤控制項(TabControl) 469
13.5.1 標籤控制項的主要屬性 469
13.5.2 標籤控制項的主要方法 470
13.5.3 使用標籤控制項設計多頁面視窗 472
13.6 照貓畫虎——基本功訓練 473
13.6.1 基本功訓練1——使用圖像列表
繪製圖示 473
13.6.2 基本功訓練2——使用列表視圖
設計登錄界面 474
13.6.3 基本功訓練3——修改樹視圖控制項
文本顏色 475
13.6.4 基本功訓練4——標籤控制項以類似於
按鈕的形式顯示 476
13.6.5 基本功訓練5——標籤位於控制項的
底部 478
13.7 情景套用——拓展與實踐 480
13.7.1 情景套用1——以報表顯示圖書信息 480
13.7.2 情景套用2——以樹狀結構顯示部門
結構信息 481
13.7.3 情景套用3——在樹狀結構中編輯地域
信息 483
13.7.4 情景套用4——使樹視圖控制項具有複選
功能 484
13.7.5 情景套用5——Loading視窗中的
進度的百分比顯示 485
13.8 自我測試 487
13.9 行動指南 488
13.10 成功故事——“蓋茨第二” 488
第3部分 高級篇
第14堂課 檔案操作 493
視頻講解:135分鐘
14.1 使用C函式進行檔案操作 494
14.1.1 讀取檔案數據 494
14.1.2 向檔案中寫入數據 496
14.1.3 定位檔案 498
14.2 使用CFile類進行檔案操作 500
14.2.1 CFile類的主要方法 500
14.2.2 讀取檔案數據 500
14.2.3 向檔案中寫入數據 502
14.2.4 定位檔案 504
14.3 檔案查找 506
14.3.1 CFileFind類的主要方法 506
14.3.2 查找指定檔案 508
14.4 INI檔案操作 510
14.4.1 INI檔案結構解析 510
14.4.2 INI檔案操作函式 510
14.4.3 讀寫INI檔案 513
14.5 註冊表操作 515
14.5.1 操作註冊表的函式 515
14.5.2 利用函式直接讀寫註冊表 518
14.5.3 CRegKey類的主要方法 520
14.5.4 利用CRegKey類讀寫註冊表 521
14.6 照貓畫虎——基本功訓練 523
14.6.1 基本功訓練1——創建檔案 523
14.6.2 基本功訓練2——複製檔案 524
14.6.3 基本功訓練3——刪除檔案 525
14.6.4 基本功訓練4——重命名檔案 527
14.6.5 基本功訓練5——列舉資料夾下
所有檔案 528
14.7 情景套用——拓展與實踐 530
14.7.1 情景套用1——獲取目標檔案的創建和
修改時間 530
14.7.2 情景套用2——複製檔案時顯示進
度條 531
14.7.3 情景套用3——批量刪除指定類型的
檔案 533
14.7.4 情景套用4——把檔案刪除到回收
站中 534
14.7.5 情景套用5——設定開機自動運行 536
14.8 自我測試 539
14.9 行動指南 540
14.10 成功故事——迅雷創始人:鄒勝龍 541
第15堂課 圖形圖像程式設計 543
視頻講解:121分鐘
15.1 GDI設備與對象 544
15.1.1 畫筆CPen 544
15.1.2 畫刷CBrush 545
15.1.3 點陣圖CBitmap 546
15.1.4 區域CRgn 547
15.1.5 字型CFont 548
15.1.6 設備上下文CDC 550
15.2 常用圖像存儲格式 551
15.2.1 點陣圖BMP 551
15.2.2 圖示ICO 553
15.2.3 GIF圖像 554
15.3 文本輸出與繪製 556
15.3.1 在指定位置輸出文本 556
15.3.2 在指定區域輸出文本 557
15.3.3 利用定位點輸出文本 559
15.3.4 設定字型、顏色及對齊方式 560
15.3.5 設定文本背景透明 562
15.4 繪製圖形圖像 563
15.4.1 利用線條繪製表格 563
15.4.2 繪製多邊形 564
15.4.3 填充區域 565
15.4.4 填充選區 566
15.4.5 線條的漸變 568
15.4.6 區域的漸變 569
15.4.7 繪製點陣圖 570
15.5 照貓畫虎——基本功訓練 572
15.5.1 基本功訓練1——繪製圓角按鈕 572
15.5.2 基本功訓練2——繪製並填充三角形 573
15.5.3 基本功訓練3——繪製文字框線 575
15.5.4 基本功訓練4——繪製居中顯示的
圖像 576
15.5.5 基本功訓練5——繪製空心字 576
15.6 情景套用——拓展與實踐 578
15.6.1 情景套用1——創建不同的畫刷 578
15.6.2 情景套用2——模擬時鐘 580
15.6.3 情景套用3——數字驗證 582
15.6.4 情景套用4——繪製自定義線條 583
15.6.5 情景套用5——繪製漸變顏色的空
心字 584
15.7 自我測試 586
15.8 行動指南 587
15.9 成功故事——知識改變命運、
科技改變生活 588
第16堂課 列印控制 589
視頻講解:94分鐘
16.1 列印基礎知識 590
16.1.1 印表機介紹 590
16.1.2 解析度 590
16.1.3 映射模式 590
16.2 基於文檔、視圖結構的列印 591
16.2.1 按比例列印數據 591
16.2.2 列印圖像 594
16.2.3 自定義列印預覽 597
16.3 基於對話框結構的列印 599
16.3.1 獲取印表機設備上下文 599
16.3.2 列印預覽 600
16.3.3 分頁列印 602
16.4 列印控制相關技術 603
16.4.1 自定義列印紙大小 603
16.4.2 控制列印方向 603
16.4.3 設定列印份數 604
16.5 照貓畫虎——基本功訓練 605
16.5.1 基本功訓練1——在印表機上
繪製文字 605
16.5.2 基本功訓練2——實現橫向列印表格 606
16.5.3 基本功訓練3——獲取列印紙邊距 607
16.5.4 基本功訓練4——列印新一頁 608
16.5.5 基本功訓練5——列印窗體客戶區 608
16.6 情景套用——拓展與實踐 609
16.6.1 情景套用1——設定列印表格的邊
線及字型 609
16.6.2 情景套用2——實現照片的列印 612
16.6.3 情景套用3——實現報表列印 613
16.6.4 情景套用4——實現商品銷售
圖表列印 615
16.6.5 情景套用5——具有滾動條的
預覽界面 617
16.7 自我測試 619
16.8 行動指南 620
16.9 成功故事——中國通信設備行業的
領跑者:任正非 621
第17堂課 掌握資料庫操作 623
視頻講解:60分鐘
17.1 資料庫概述 624
17.1.1 資料庫發展歷史 624
17.1.2 關係型資料庫 625
17.2 ADO編程基礎 625
17.2.1 ADO概述 625
17.2.2 在Visual C++中套用ADO技術 626
17.3 ADO對象 626
17.3.1 ADO連線對象(Connection) 626
17.3.2 ADO記錄集對象(Recordset) 628
17.3.3 ADO命令對象Command 631
17.3.4 ADO參數對象Parameter 633
17.4 利用ADO連線資料庫 634
17.4.1 連線Access資料庫 634
17.4.2 連線SQL Server資料庫 637
17.5 利用ADO運算元據庫 638
17.5.1 獲取記錄集數據 638
17.5.2 遍歷記錄集 639
17.5.3 向記錄集中添加數據 641
17.5.4 修改記錄集數據 644
17.5.5 刪除記錄集數據 645
17.6 照貓畫虎——基本功訓練 647
17.6.1 基本功訓練1——用ADO
動態連線SQL Server資料庫 647
17.6.2 基本功訓練2——將員工表中
記錄批量插入到另一個表中 648
17.6.3 基本功訓練3——批量修改員工表中
的工資 649
17.6.4 基本功訓練4——刪除指定條件的
數據 650
17.6.5 基本功訓練5——利用ADO創建
存儲過程 651
17.7 情景套用——拓展與實踐 652
17.7.1 情景套用1——讀取SQL Server
資料庫結構 652
17.7.2 情景套用2——在Access資料庫中
錄入和提取圖片 654
17.7.3 情景套用3——在應用程式中
使用事務 657
17.7.4 情景套用4——利用ADO動態
創建視圖 658
17.7.5 情景套用5——調用具有輸出參數的
存儲過程 659
17.8 自我測試 660
17.9 行動指南 661
17.10 成功故事——軟體業的華人教父:
王嘉廉 662
第18堂課 掌握進程與執行緒技術 663
視頻講解:105分鐘
18.1 理解進程 664
18.1.1 進程概述 664
18.1.2 進程的創建 665
18.1.3 進程的終止 666
18.1.4 進程間通信 668
18.2 執行緒的使用 671
18.2.1 執行緒概述 671
18.2.2 執行緒的創建 672
18.2.3 執行緒的調度 674
18.3 執行緒同步技術 676
18.3.1 多執行緒潛在的危機 676
18.3.2 使用事件對象實現執行緒同步 677
18.3.3 使用互斥對象實現執行緒同步 679
18.4 照貓畫虎——基本功訓練 681
18.4.1 基本功訓練1——在自己的應用程式中
調用QQ 681
18.4.2 基本功訓練2——利用多執行緒實現
檔案查找 682
18.4.3 基本功訓練3——禁止程式重複運行 683
18.4.4 基本功訓練4——垃圾檔案清理工具 684
18.4.5 基本功訓練5——利用執行緒同步向
控制項中寫入數據 687
18.5 情景套用——拓展與實踐 689
18.5.1 情景套用1——等待打開的
“計事本”程式關閉 689
18.5.2 情景套用2——套用執行緒構建
視頻視窗 690
18.5.3 情景套用3——利用閃屏執行緒設計
啟動界面 691
18.5.4 情景套用4——統計文本檔案中
漢字與字元的個數 692
18.5.5 情景套用5——利用多執行緒實現
檔案下載 694
18.6 自我測試 696
18.7 行動指南 697
18.8 成功故事——創造網際網路搜尋時代 697
第19堂課 動態程式庫 699
視頻講解:86分鐘
19.1 動態程式庫基礎 700
19.1.1 動態程式庫的特點 700
19.1.2 查看動態程式庫 700
19.2 創建和調用動態程式庫 701
19.2.1 創建Win32動態程式庫 702
19.2.2 命名約定 703
19.2.3 動態程式庫的調用 705
19.2.4 創建MFC動態程式庫 706
19.3 動態程式庫高級套用 708
19.3.1 應用程式中的資源 708
19.3.2 載入動態程式庫中的資源 711
19.4 照貓畫虎——基本功訓練 712
19.4.1 基本功訓練1——判斷閏年 712
19.4.2 基本功訓練2——格式化磁碟 714
19.4.3 基本功訓練3——函式轉發 715
19.4.4 基本功訓練4——十進制轉八進制 716
19.4.5 基本功訓練5——修改應用程式
對話框 717
19.5 情景套用——拓展與實踐 719
19.5.1 情景套用1——計算某日是該年第
幾天 719
19.5.2 情景套用2——提取並保存應用程式
圖示 721
19.5.3 情景套用3——漢語和英語兩個版本
的簡單加法計算器 723
19.5.4 情景套用4——求三角形面積 725
19.5.5 情景套用5——獲取CPU的ID值 727
19.6 自我測試 729
19.7 行動指南 730
19.8 成功故事——IT風雲人物:
鮑岳橋 730
特別提醒:
親愛的讀者朋友,由於近期紙張價格和印製成本大幅上漲,為不增加讀者朋友的負擔,又不減少書的內容,本書以下章節內容不得不放在配書光碟中,由此給您帶來了不便,在此深表歉意。
第20堂課 網路編程 733
視頻講解:145分鐘
(本章內容在配書光碟中)
20.1 計算機網路基礎 734
20.1.1 計算機網路發展歷史 734
20.1.2 OSI參考模型 734
20.1.3 IP位址 735
20.1.4 域名 735
20.1.5 地址解析 736
20.1.6 TCP/IP協定 736
20.1.7 連線埠 738
20.2 套接字編程基礎 738
20.2.1 套接字概述 738
20.2.2 套接字阻塞模式 738
20.2.3 位元組順序 739
20.2.4 套接字I/O模型 739
20.3 套接字函式 753
20.3.1 套接字函式介紹 754
20.3.2 設計簡單的網路聊天程式 759
20.4 MFC套接字編程 766
20.4.1 CAsyncSocket類 766
20.4.2 CSocket類 770
20.5 照貓畫虎——基本功訓練 771
20.5.1 基本功訓練1——獲取本機用戶名和
IP位址 771
20.5.2 基本功訓練2——伺服器端和客戶端
訊息通信 772
20.5.3 基本功訓練3——傳送編輯框內數據 776
20.6 情景套用——拓展與實踐 780
20.6.1 情景套用1——實現Ping命令 780
20.6.2 情景套用2——利用UDP協定實現
廣播通信 783
20.6.3 情景套用3——通過UDP協定傳送訊息 785
20.7 自我測試 787
20.8 行動指南 788
20.9 成功故事——中國第一程式設計師:求伯君 789
第21堂課 程式調試 791
視頻講解:31分鐘
(本章內容在配書光碟中)
21.1 斷點跟蹤 792
21.1.1 設定普通斷點 792
21.1.2 設定條件斷點 792
21.1.3 設定數據斷點 794
21.1.4 設定訊息斷點 795
21.1.5 進行斷點跟蹤 795
21.2 調試視窗 797
21.2.1 使用Watch視窗查看變數值 797
21.2.2 使用Call Stack視窗查看函式的調用 798
21.2.3 使用Memory視窗查看對象的記憶體信息 798
21.2.4 使用Variables視窗查看變數信息 799
21.2.5 使用Registers視窗查看暫存器信息 799
21.2.6 使用Disassembly視窗查看反彙編代碼 800
21.3 記憶體泄露檢查 801
21.4 自我測試 802
21.5 行動指南 803
21.6 成功故事——IT“大王”:王志東 803
第4部分 實戰篇
第22堂課 螢幕錄像模組 807
視頻講解:102分鐘
(本章內容在配書光碟中)
22.1 螢幕錄像模組概述 808
22.1.1 模組概述 808
22.1.2 功能結構 808
22.2 關鍵技術 808
22.2.1 螢幕抓圖 808
22.2.2 抓圖時抓取滑鼠 809
22.2.3 將點陣圖數據流寫入AVI檔案 810
22.2.4 將AVI檔案轉換成點陣圖數據 814
22.2.5 獲得AVI檔案屬性 815
22.2.6 根據運行狀態顯示托盤圖示 817
22.2.7 獲得磁碟的剩餘空間 818
22.2.8 動態生成錄像檔案名稱 819
22.3 主窗體設計 820
22.3.1 概述 820
22.3.2 界面設計 821
22.3.3 功能實現 821
22.4 錄像截取模組設計 832
22.4.1 概述 832
22.4.2 界面設計 832
22.4.3 功能實現 833
22.5 錄像合成模組設計 838
22.5.1 概述 838
22.5.2 界面設計 838
22.5.3 功能實現 839
第23堂課 人事考勤管理系統 843
視頻講解:91分鐘
(本章內容在配書光碟中)
23.1 開發背景 844
23.2 系統分析 844
23.2.1 需求分析 844
23.2.2 系統功能描述 844
23.3 系統設計 844
23.3.1 系統目標 844
23.3.2 系統功能結構 845
23.3.3 系統預覽 845
23.3.4 業務流程圖 846
23.3.5 資料庫設計 846
23.4 公共類設計 847
23.5 主窗體設計 852
23.6 用戶登錄模組設計 853
23.6.1 用戶登錄模組概述 853
23.6.2 用戶登錄模組技術分析 853
23.6.3 用戶登錄模組實現過程 854
23.7 用戶管理模組設計 855
23.7.1 用戶管理模組概述 855
23.7.2 用戶管理模組技術分析 855
23.7.3 用戶管理模組實現過程 855
23.8 部門管理模組設計 857
23.8.1 部門管理模組概述 857
23.8.2 部門管理模組技術分析 857
23.8.3 部門管理模組實現過程 858
23.9 人員信息管理模組設計 860
23.9.1 人員信息管理模組概述 860
23.9.2 人員信息管理技術分析 860
23.9.3 人員信息管理實現過程 861
23.10 考勤管理模組設計 866
23.10.1 考勤管理模組概述 866
23.10.2 考勤管理模組技術分析 866
23.10.3 考勤管理模組實現過程 867
23.11 考勤匯總查詢模組設計 871
23.11.1 考勤匯總查詢模組概述 871
23.11.2 考勤匯總查詢模組技術分析 872
23.11.3 考勤匯總查詢模組實現過程 873
第24堂課 企業簡訊群發系統 877
視頻講解:83分鐘
(本章內容在配書光碟中)
24.1 開發背景 878
24.2 系統分析 878
24.2.1 需求分析 878
24.2.2 可行性分析 878
24.2.3 編寫項目計畫書 879
24.3 系統設計 881
24.3.1 系統目標 881
24.3.2 系統功能結構圖 881
24.3.3 系統預覽 882
24.3.4 業務流程圖 882
24.3.5 資料庫設計 883
24.4 公共類設計 885
24.4.1 自定義SetHBitmap方法 885
24.4.2 處理WM_MOUSEMOVE事件 885
24.5 主視窗設計 886
24.6 簡訊貓設定模組設計 889
24.6.1 簡訊貓設定模組概述 889
24.6.2 簡訊貓設定技術分析 889
24.6.3 簡訊貓設定實現過程 890
24.7 電話簿管理模組設計 891
24.7.1 電話簿管理模組概述 891
24.7.2 電話簿管理技術分析 892
24.7.3 電話簿管理實現過程 892
24.7.4 單元測試 896
24.8 常用語管理模組設計 897
24.8.1 常用語管理模組概述 897
24.8.2 常用語管理技術分析 898
24.8.3 常用語管理實現過程 899
24.9 簡訊傳送模組設計 902
24.9.1 簡訊傳送模組概述 902
24.9.2 簡訊傳送技術分析 903
24.9.3 簡訊傳送實現過程 903
24.9.4 單元測試 909
24.10 簡訊接收模組設計 910
24.10.1 簡訊接收模組概述 910
24.10.2 簡訊接收技術分析 910
24.10.3 簡訊接收實現過程 911
24.10.4 單元測試 914
24.11 開發技巧與難點分析 915
24.11.1 顯示“收到新信息”對話框 915
24.11.2 製作只允許輸入數字的編輯框 917
24.12 簡訊貓套用 917
24.13 本堂課總結 919