Visual C++編程實戰寶典

Visual C++編程實戰寶典

《Visual C++編程實戰寶典》是2014年清華大學出版社出版的圖書,作者是李琳娜。

圖書簡介

本書以Visual Studio 2010作為開發環境,由淺入深,全面、系統地介紹了Visual C++開發的各項技術。書中的各個技術點都提供了實例供讀者實戰演練,各章後還提供了實戰練習題幫助讀者鞏固和提高。另外,本書配1張DVD光碟,內容為作者專門為本書錄製的33.6小時配套教學視頻,還收錄了本書涉及的所有實例源檔案,以幫助讀者更加高效、直觀地學習本書內容。

本書共分7篇。第1篇介紹Visual Studio 2010開發環境及搭建、C++基本語法及面向對象思想;第2篇介紹Windows編程、MFC基礎、選單、工具列、狀態欄、Windows標準控制項、MFC類、文檔/視圖結構、對話框等技術;第3篇介紹資料庫編程基礎及SQL Server、ADO、ODBC、OLE DB、MySQL等資料庫訪問技術;第4篇介紹Windows套接字編程、郵槽和管道的使用、串列連線埠編程、Internet編程等;第5篇介紹磁碟操作、系統控制與調用、應用程式的操作、系統工具的操作、桌面的相關操作、系統信息操作、訊息的使用、剪貼簿的使用、滑鼠鍵盤的操作、操作註冊表、讀寫INI檔案、讀寫XML檔案、動態程式庫編程、多執行緒編程等;第6篇介紹文本字型、圖形與圖像編程、聲音與動畫編程、DirectX圖形開發等;第7篇詳細介紹網路音頻播放系統、GPS定位系統項目案例的開發,以提高讀者的實戰水平。

本書適合所有想全面學習Visual C++開發技術的人員閱讀,也適合用Visual C++進行開發的工程技術人員和科研人員閱讀。對於經常使用Visual C++做開發的人員,本書是一本不可多得的案頭必備參考手冊。

圖書目錄

第1篇 Visual C++開發基礎

第1章 Visual Studio 2010集成開發環境( 教學視頻:26分鐘) 2

1.1 Visual Studio 2010及其開發環境 2

1.1.1 Visual Studio 2010的安裝 2

1.1.2 Visual Studio 2010開發環境 3

1.1.3 Visual Studio 2010嚮導 4

1.2 工作區視圖 6

1.2.1 解決方案視圖 6

1.2.2 類視圖 6

1.2.3 資源視圖 6

1.3 資源與資源編輯器 7

1.3.1 資源的類型 7

1.3.2 資源編輯器 8

1.4 本章小結 8

1.5 習題 8

第2章 Visual Studio 2010基本應用程式的創建( 教學視頻:29分鐘) 9

2.1 使用AppWizard生成項目 9

2.1.1 解決方案與項目 9

2.1.2 使用AppWizard創建項目 9

2.2 Win32控制台應用程式 11

2.2.1 使用嚮導生成Win32控制台項目 11

2.2.2 添加源檔案 11

2.2.3 編譯、連結程式 12

2.2.4 生成程式 13

2.2.5 運行程式 13

2.3 MFC應用程式框架 15

2.3.1 創建MFC應用程式 15

2.3.2 認識文檔/視圖結構 16

2.4 本章小結 17

2.5 習題 17

第3章 C/C++語言基礎( 教學視頻:162分鐘) 18

3.1 對標準C的擴展——C++ 18

3.2 C++語法元素 19

3.2.1 最小的元素——符號 19

3.2.2 注釋規範 20

3.2.3 標識符命名規範 21

3.2.4 C++預定義的關鍵字 21

3.2.5 標點符號 22

3.2.6 操作符 22

3.2.7 聲明與定義 24

3.3 常量和變數 25

3.3.1 定義常量 25

3.3.2 常量成員函式 28

3.3.3 定義變數 28

3.3.4 代碼的有效範圍——作用域 29

3.4 數據類型 31

3.4.1 基本數據類型 31

3.4.2 數據類型的轉換方式 32

3.4.3 數組 33

3.4.4 結構體 34

3.4.5 共用體 34

3.4.6 匿名共用體 36

3.4.7 枚舉類型 38

3.4.8 用typedef定義類型 39

3.4.9 位域 39

3.5 運算符和表達式 40

3.5.1 算術運算符 41

3.5.2 賦值運算符 41

3.5.3 關係運算符 43

3.5.4 邏輯運算符 44

3.5.5 位運算符 45

3.5.6 三目運算符 46

3.5.7 增1和減1運算符 47

3.5.8 逗號運算符 47

3.5.9 sizeof運算符 48

3.5.10 new和delete 49

3.5.11 範圍確定符 50

3.5.12 類成員訪問符 51

3.5.13 成員指針操作符 51

3.6 控制語句 52

3.6.1 表達式語句、空語句和複合語句 52

3.6.2 選擇語句 53

3.6.3 循環語句 56

3.6.4 跳轉語句 59

3.7 函式 61

3.7.1 函式的定義和調用 61

3.7.2 帶默認形參值的函式 62

3.7.3 函式的遞歸調用 63

3.7.4 內聯函式 64

3.7.5 函式的重載 65

3.8 指針和引用 65

3.8.1 指針和指針變數 65

3.8.2 &和*運算符 66

3.8.3 指針和數組 67

3.8.4 指針和結構體 67

3.8.5 函式的指針傳遞 68

3.8.6 引用及函式的引用傳遞 68

3.9 預處理 69

3.9.1 宏定義 69

3.9.2 檔案包含 70

3.9.3 條件編譯 71

3.10 檔案操作 71

3.10.1 打開檔案 71

3.10.2 從檔案讀取數據 72

3.10.3 向檔案寫入數據 72

3.10.4 關閉檔案 73

3.10.5 檔案操作示例 73

3.11 本章小結 74

3.12 習題 75

第4章 C++面向對象程式設計( 教學視頻:108分鐘) 76

4.1 類和對象 76

4.1.1 從結構到類 76

4.1.2 定義類 76

4.1.3 定義對象 78

4.1.4 嵌套類 79

4.2 類成員及其特性 79

4.2.1 構造函式 79

4.2.2 析構函式 81

4.2.3 對象成員初始化 82

4.2.4 常類型(const) 82

4.2.5 使用this指針指向對象 83

4.2.6 類的作用域和對象的生存期 84

4.2.7 使用靜態成員保存類的數據 84

4.2.8 友元函式和友元類 85

4.3 繼承與派生 88

4.3.1 如何使用繼承方法 88

4.3.2 派生類的構造函式和析構函式 89

4.3.3 實現多重繼承 91

4.3.4 虛基類 92

4.4 多態和虛函式 93

4.4.1 使用虛函式實現派生類的通用功能 93

4.4.2 純虛函式和抽象基類 95

4.5 重載運算符 96

4.5.1 運算符重載語法 96

4.5.2 可重載的運算符 97

4.5.3 重載賦值運算符 98

4.6 輸入輸出流庫 99

4.6.1 C++的輸入輸出 99

4.6.2 預定義輸入/輸出對象cout和cin 100

4.6.3 標準錯誤處理對象cerr 100

4.6.4 常用輸入輸出成員函式 100

4.6.5 常見檔案流類 101

4.6.6 操作順序檔案 102

4.6.7 操作隨機檔案 103

4.7 C++的模板機制 105

4.7.1 為什麼需要模板 105

4.7.2 函式模板的使用 106

4.7.3 類模板的使用 107

4.7.4 模板與宏的對比 108

4.7.5 模板套用示例 109

4.7.6 C++標準模板庫STL簡介 110

4.8 C++實例——設計一個電子時鐘 111

4.9 本章小結 112

4.10 習題 112

第2篇 界 面 開 發

第5章 Windows編程與MFC基礎( 教學視頻:49分鐘) 116

5.1 Windows編程 116

5.1.1 Windows應用程式編程接口API 116

5.1.2 使用句柄標識視窗 117

5.1.3 輸入事件產生的訊息 117

5.1.4 Windows句柄的數據類型 118

5.2 Windows程式執行流程 118

5.2.1 入口函式WinMain() 119

5.2.2 註冊窗體類 119

5.2.3 使用CreateWindow()創建視窗 120

5.2.4 使用訊息循環回響用戶輸入 120

5.2.5 主窗體函式WinProc() 121

5.2.6 Windows編程實例——設計一個電子時鐘 122

5.3 MFC基礎 124

5.3.1 什麼是微軟基礎類庫MFC 124

5.3.2 MFC類層次結構 125

5.3.3 MFC全局函式 126

5.4 MFC應用程式框架分析 127

5.4.1 MFC的入口函式WinMain() 127

5.4.2 派生自CWinApp的應用程式對象 128

5.4.3 初始化應用程式的InitInstance()函式 128

5.4.4 框架程式的運行核心Run()函式 130

5.5 MFC的訊息映射 130

5.5.1 標準Windows訊息 130

5.5.2 觸髮菜單/快捷鍵產生的命令訊息 131

5.5.3 使用ON_MESSAGE宏自定義訊息 132

5.5.4 註冊系統訊息 132

5.6 本章小結 133

5.7 習題 133

第6章 選單、工具列和狀態欄( 教學視頻:61分鐘) 134

6.1 選單 134

6.1.1 選單的種類及開發步驟 134

6.1.2 創建和編輯選單 134

6.1.3 處理選單命令訊息 135

6.1.4 處理選單更新訊息 136

6.1.5 設定選單項快捷鍵 138

6.1.6 創建與使用彈出式選單 138

6.1.7 選單類CMenu 140

6.2 工具列 141

6.2.1 創建與編輯工具列 141

6.2.2 設定工具列停靠和浮動 142

6.2.3 設定工具提示 143

6.2.4 CToolBar介紹 144

6.3 狀態欄 144

6.3.1 創建狀態欄 144

6.3.2 狀態欄實例 145

6.3.3 CStatusBar介紹 147

6.4 本章小結 148

6.5 習題 148

第7章 使用Windows標準控制項( 教學視頻:85分鐘) 149

7.1 Windows標準控制項 149

7.1.1 常用Windows控制項 149

7.1.2 使用對話框編輯器創建控制項 150

7.1.3 控制項類的基類CWnd 151

7.1.4 控制項的訊息及其處理 152

7.1.5 創建控制項對象 153

7.2 按鈕 154

7.2.1 按鈕簡介 154

7.2.2 按鈕類CButton 155

7.2.3 按鈕的屬性與訊息 155

7.2.4 設定和獲取按鈕狀態 155

7.3 靜態控制項與編輯控制項 155

7.3.1 創建與使用靜態控制項 156

7.3.2 靜態控制項類CStatic 156

7.3.3 創建編輯控制項 157

7.3.4 編輯控制項類CEdit 157

7.3.5 編輯控制項的訊息 158

7.3.6 編輯控制項的套用實例 158

7.4 單選按鈕和複選框 163

7.4.1 單選按鈕控制項的創建 164

7.4.2 單選按鈕控制項的訊息 164

7.4.3 複選框控制項的創建 165

7.4.4 複選框控制項的訊息 165

7.4.5 單選按鈕控制項和複選框控制項的實例 165

7.5 列表框和組合框 166

7.5.1 創建列表框 167

7.5.2 列表框類CListBox 167

7.5.3 列表框訊息 168

7.5.4 列表框實例 168

7.5.5 創建組合框 169

7.5.6 組合框類CComboBox 169

7.5.7 組合框訊息 170

7.5.8 組合框實例 171

7.6 微調控制項、滑塊控制項和進度條控制項 171

7.6.1 微調控制項的創建和使用 172

7.6.2 創建和使用滑塊控制項 172

7.6.3 創建和使用進度條控制項 173

7.6.4 編程實例 173

7.7 列表視圖控制項和樹形視圖控制項 174

7.7.1 創建列表視圖控制項 175

7.7.2 列表視圖控制項類CListCtrl 176

7.7.3 列表視圖控制項的通知訊息 176

7.7.4 創建樹形視圖控制項 176

7.7.5 樹形視圖控制項類CTreeCtrl 176

7.7.6 樹形視圖控制項的訊息 177

7.7.7 編程實例 178

7.8 ActiveX控制項 178

7.8.1 使用ActiveX控制項 178

7.8.2 ActiveX控制項的結構 178

7.8.3 包裝類 179

7.8.4 獲取ActiveX控制項的幫助信息 179

7.8.5 Visual C++中的控制項和組件庫 181

7.8.6 MFC程式中ActiveX控制項的使用 182

7.9 本章小結 183

7.10 習題 183

第8章 MFC的一些常用類( 教學視頻:67分鐘) 184

8.1 字元串類(CString) 184

8.1.1 創建CString對象 184

8.1.2 CString類的成員函式 184

8.1.3 CString類的常用操作 186

8.1.4 CString的格式化與類型轉換 188

8.1.5 CString使用實例 190

8.2 集合類 191

8.2.1 數組類 191

8.2.2 數組類的使用實例 192

8.2.3 鍊表類 194

8.2.4 鍊表類的使用實例 195

8.3 日期、時間類 197

8.3.1 CTime類 197

8.3.2 格式化CTime對象 198

8.3.3 CTimeSpan類 199

8.3.4 製作一個計時器 199

8.4 MFC檔案操作類——CFile 200

8.4.1 構造檔案對象並打開檔案 200

8.4.2 讀寫檔案 202

8.4.3 定位檔案 202

8.4.4 檔案管理操作 203

8.4.5 檔案操作實例 204

8.5 MFC異常類 205

8.5.1 MFC異常類簡介 205

8.5.2 檔案異常類CFileException 206

8.5.3 異常的捕獲 206

8.6 本章小結 208

8.7 習題 208

第9章 文檔/視圖結構應用程式( 教學視頻:70分鐘) 209

9.1 文檔/視圖結構分析 209

9.1.1 框架中的主要類 209

9.1.2 文檔類、視圖類核心函式 211

9.1.3 新建、保存和打開的實現 214

9.1.4 多文檔應用程式框架 214

9.2 開發文檔/視圖結構應用程式 215

9.2.1 目標 215

9.2.2 創建基本程式框架 216

9.2.3 創建文檔數據 216

9.2.4 繪圖操作 217

9.2.5 文檔序列化CArchive 218

9.2.6 讓文檔/視圖結構支持滾動條 219

9.3 對話框分割與多視圖套用 222

9.3.1 對話框分割基礎知識 222

9.3.2 動態分割對話框的實現 222

9.3.3 多視圖的實現 223

9.4 文檔/視圖應用程式實例 224

9.5 本章小結 226

9.6 習題 226

第10章 對話框的套用( 教學視頻:86分鐘) 228

10.1 對話框概述 228

10.1.1 對話框工作方式 228

10.1.2 對話框的種類 229

10.1.3 創建與編輯對話框模板 229

10.2 對話框與程式連線 230

10.2.1 創建對話框類 230

10.2.2 為對話框類添加成員變數 231

10.2.3 DDX和DDV機制 233

10.2.4 處理對話框控制項通知訊息 236

10.3 創建與顯示對話框 238

10.3.1 創建模態對話框 238

10.3.2 創建非模態對話框 239

10.3.3 修改對話框背景顏色 239

10.3.4 關閉對話框 240

10.4 屬性表對話框 241

10.4.1 屬性表對話框的運行機制 241

10.4.2 屬性表對話框的創建 241

10.5 訊息對話框與公用對話框 242

10.5.1 訊息對話框實例 243

10.5.2 顏色對話框實例 244

10.5.3 檔案對話框實例 245

10.5.4 字型對話框實例 246

10.5.5 查找、替換對話框實例 247

10.5.6 列印對話框實例 247

10.6 本章小結 248

10.7 習題 249

第3篇 資料庫開發

第11章 資料庫開發概述( 教學視頻:95分鐘) 252

11.1 資料庫簡介 252

11.1.1 資料庫發展史概述 252

11.1.2 資料庫常見概念 253

11.1.3 資料庫的作用 253

11.1.4 資料庫管理系統(DBMS) 254

11.1.5 資料庫常見4種數據模型 254

11.1.6 資料庫的體系結構 256

11.1.7 關係資料庫 256

11.1.8 資料庫的開發過程 257

11.2 規範化理論 258

11.2.1 為什麼需要規範化 258

11.2.2 數據依賴 258

11.2.3 範式介紹 260

11.3 E-R模型 262

11.3.1 E-R模型元素 263

11.3.2 E-R設計 264

11.4 結構化查詢語言SQL 265

11.4.1 SQL語言概述 265

11.4.2 SQL數據定義語句DDL 266

11.4.3 SQL數據操縱語句DML 268

11.4.4 SQL數據控制語句DCL 269

11.4.5 操作視圖 270

11.5 Visual C++資料庫接口 271

11.5.1 面向對象技術 271

11.5.2 Windows平台下的數據訪問接口 271

11.5.3 Visual C++數據訪問接口 273

11.5.4 用Visual C++訪問資料庫的優點 274

11.6 本章小結 274

11.7 習題 275

第12章 Visual C++中SQL Server 訪問技術( 教學視頻:54分鐘) 276

12.1 SQL Server 2008簡介 276

12.1.1 SQL Server 2008介紹 276

12.1.2 SQL Server 2008的工具 277

12.1.3 SQL Server 2008配置管理器 277

12.1.4 SQL Server Management Studio 278

12.2 創建SQL Server 2008對象 279

12.2.1 創建用戶資料庫 280

12.2.2 創建和管理表 281

12.2.3 創建和管理視圖 282

12.2.4 創建和管理存儲過程 283

12.3 ADO訪問技術 284

12.3.1 ADO模型 284

12.3.2 ADO資料庫訪問步驟分析 286

12.4 使用ADO訪問資料庫實例 286

12.4.1 ADO連線SQL Server資料庫 287

12.4.2 ADO讀取資料庫表記錄 288

12.4.3 ADO寫入資料庫表記錄 290

12.4.4 ADO刪除資料庫表記錄 291

12.5 本章小結 292

12.6 習題 292

第13章VisualC++中ODBC訪問技術(教學視頻:62分鐘) 293

13.1ODBCAPI 293

13.1.1ODBC體系結構 293

13.1.2ODBC數據類型 294

13.1.3ODBC句柄與返回值 295

13.1.4ODBC驅動和管理器 296

13.1.5配置ODBC數據源 297

13.2用ODBCAPI運算元據庫實例 299

13.2.1運算元據庫的一般步驟 299

13.2.2連線資料庫 300

13.2.3讀取資料庫表記錄 301

13.2.4添加、刪除記錄 302

13.2.5斷開資料庫連線 302

13.2.6ODBCAPI封裝類實例 303

13.3用MFCODBC類運算元據庫 309

13.3.1連線資料庫——CDatabase類 309

13.3.2選擇和操作記錄——CRecordset類 310

13.3.3在窗體中顯示和運算元據——CRecordView類 312

13.3.4異常處理——CDBException類 312

13.3.5斷開數據源連線 312

13.3.6MFCODBC運算元據庫實例 313

13.4自動註冊DSN 317

13.5本章小結 318

13.6習題 318

第14章VisualC++中OLEDB訪問技術(教學視頻:25分鐘) 319

14.1OLEDB簡介 319

14.1.1什麼是OLEDB 319

14.1.2OLEDB和ODBC之間的關係 320

14.2VisualC++中的OLEDB類 320

14.2.1資料庫連線類CDataSource 320

14.2.2資料庫訪問會話類Csession 321

14.2.3記錄集類CrowSet 321

14.2.4數據表CTable 322

14.3VisualC++的OLEDB套用實例 323

14.3.1創建應用程式 323

14.3.2顯示資料庫表 324

14.3.3顯示錶定義 326

14.4本章小結 329

14.5習題 330

第15章VisualC++中MySQL訪問技術(教學視頻:27分鐘) 331

15.1MySQLCAPI 331

15.1.1MySQLCAPI的數據類型 331

15.1.2MySQLCAPI函式 333

15.1.3應用程式實例 335

15.1.4CDatabase類的實現 337

15.1.5套用CDatabase類 339

15.2本章小結 340

15.3習題 340

第4篇網路編程

第16章Windows套接字編程(教學視頻:81分鐘) 342

16.1常見概念 342

16.1.1WindowsSockets規範 342

16.1.2套接字及其分類 342

16.1.3客戶端/伺服器(C/S)模型 343

16.1.4網路位元組順序 344

16.2套接字型檔函式 346

16.2.1套接字函式 346

16.2.2資料庫函式 347

16.2.3Windows擴展函式 349

16.3使用WinSockAPI 350

16.3.1基本Socket系統調用 350

16.3.2WindowsSockets編程機理 352

16.3.3面向連線的套接字編程 353

16.3.4無連線套接字編程 354

16.3.5原始套接字編程 355

16.4MFC對WinSockAPI的封裝 356

16.4.1CAsyncSocket類 356

16.4.2使用CAsyncSocket類 356

16.4.3CSocket類 357

16.4.4使用CSocket類 357

16.5MFCSocket實例 359

16.6本章小結 363

16.7習題 363

第17章郵槽與管道(教學視頻:57分鐘) 364

17.1郵槽 364

17.1.1實施細節 364

17.1.2郵槽伺服器 365

17.1.3郵槽客戶端 366

17.1.4其他功能函式 366

17.1.5郵槽套用示例 366

17.2匿名管道 368

17.2.1匿名管道的實施細節 368

17.2.2匿名管道套用示例 369

17.3命名管道 370

17.3.1命名管道技術概述 371

17.3.2命名規範及通信模式 371

17.3.3使用命名管道 372

17.3.4其他功能函式 373

17.3.5命名管道實例 374

17.4本章小結 377

17.5習題 377

第18章通信連線埠編程(教學視頻:64分鐘) 378

18.1串列連線埠通信編程 378

18.1.1Windows環境下的串口編程 378

18.1.2設定串口參數 379

18.1.3數據流控制參數 381

18.1.4申請串口資源 383

18.1.5同步I/O讀寫數據 385

18.1.6使用事件驅動機制 386

18.1.7異步I/O讀寫數據 387

18.1.8MSComm串列通信控制項 388

18.2通信連線埠編程實例 391

18.2.1串口執行緒初始化 391

18.2.2串口接收執行緒 392

18.2.3打開和關閉串口 393

18.2.4向串口傳送數據 395

18.2.5界面處理 395

18.3本章小結 398

18.4習題 398

第19章Internet編程(教學視頻:49分鐘) 399

19.1WinInet編程 399

19.1.1WinInetAPI概述 399

19.1.2WinInet常用類概覽 400

19.1.3超文本傳輸協定HTTP編程 403

19.1.4檔案傳輸協定FTP編程 405

19.1.5網際Gopher協定編程 407

19.2ISAPI編程 408

19.2.1ISAPI概述 408

19.2.2ISAPI伺服器擴展程式 409

19.2.3使用套用嚮導開發ISAPI伺服器擴展程式 411

19.2.4調試ISA 412

19.2.5ISAPI過濾程式 413

19.3MAPI編程 415

19.3.1MAPI體系結構概述 415

19.3.2MAPI應用程式接口 416

19.3.3使用MAPI編寫支持電子郵件的程式 417

19.4本章小結 419

19.5習題 419

第5篇系統編程

第20章系統相關功能開發(教學視頻:191分鐘) 422

20.1獲取磁碟信息 422

20.1.1獲取驅動器卷標 422

20.1.2獲取磁碟序列號 423

20.1.3檢測軟碟機是否有軟碟 424

20.1.4判斷是否插入存儲器 425

20.1.5判斷光碟機是否有光碟 427

20.1.6判斷驅動器類型 428

20.1.7獲取磁碟空間信息 429

20.2操作磁碟 430

20.2.1格式化磁碟 431

20.2.2關閉磁碟共享 432

20.2.3設定磁碟卷標 434

20.2.4磁碟碎片整理 434

20.2.5從FAT32轉換為NTFS 435

20.2.6隱藏磁碟分區 436

20.2.7顯示被隱藏的磁碟分區 437

20.2.8如何更改分區號 438

20.2.9如何監視硬碟 439

20.3系統控制與調用 440

20.3.1調用外部程式 441

20.3.2調用創建捷徑嚮導 442

20.3.3訪問啟動控制臺中的各項 442

20.3.4控制光碟機的彈開與關閉 444

20.3.5關閉、重啟、註銷和鎖定計算機 445

20.3.6關閉和打開顯示器 446

20.3.7打開和關閉螢幕保護 447

20.3.8關閉當前輸入法 447

20.3.9讓程式發出提示音 447

20.3.10列舉系統中的執行檔 448

20.4應用程式操作 450

20.4.1禁止程式重複運行 450

20.4.2如何確定應用程式沒有回響 451

20.4.3檢索任務管理器中的任務列表 452

20.4.4判斷某個程式是否運行 453

20.4.5怎樣在程式中執行DOS命令 454

20.4.6修改其他進程中對話框的標題 455

20.4.7如何設計換膚程式 455

20.4.8PE檔案格式分析 457

20.4.9修改應用程式圖示 458

20.4.10列舉應用程式使用的dll檔案 459

20.4.11調用具有命令行參數的應用程式 460

20.4.12在程式中調用一個子進程直到結束 461

20.5系統工具 462

20.5.1為程式添加捷徑 462

20.5.2顯示系統正在運行的程式 463

20.5.3如何獲得毫秒級時間 465

20.5.4註冊和卸載組件 465

20.5.5清空資源回收筒 467

20.5.6如何在程式中顯示檔案屬性對話框 468

20.6桌面相關 469

20.6.1獲取桌面對話框 469

20.6.2獲取系統列對話框句柄 470

20.6.3獲取桌面列表視圖句柄 471

20.6.4獲取系統列屬性 471

20.6.5隱藏和顯示桌面圖示 472

20.6.6隱藏和顯示Windows系統列 473

20.6.7隱藏和顯示“開始”按鈕 474

20.6.8隱藏和顯示系統列時鐘 475

20.6.9判斷螢幕保護程式是否在運行 476

20.6.10判斷系統是否使用大字型 477

20.6.11改變桌面背景顏色 478

20.7系統信息 479

20.7.1獲取CPUID值 479

20.7.2獲取CPU時鐘頻率 480

20.7.3獲得Windows和System的路徑 481

20.7.4獲取特殊資料夾路徑 482

20.7.5檢測系統啟動模式 484

20.7.6判斷作業系統類型 485

20.7.7獲取當前系統的運行時間 486

20.7.8如何獲取Windows7系統啟動時間 487

20.7.9獲取處理器信息 487

20.7.10檢測是否安裝音效卡 489

20.7.11獲取當前用戶名 490

20.7.12獲取系統環境變數 490

20.7.13修改計算機名稱 491

20.7.14獲取當前螢幕顏色質量 492

20.7.15獲得當前螢幕的解析度 492

20.8訊息 493

20.8.1如何自定義訊息 493

20.8.2如何向Windows註冊訊息 494

20.8.3PostMessage()函式和SendMessage()函式的區別 496

20.8.4利用WM_COPYDATA訊息實現進程間數據傳遞 496

20.9剪貼簿 498

20.9.1列舉剪貼簿中數據類型 498

20.9.2監視剪貼簿複製過的內容 499

20.9.3通過剪貼簿傳遞全局數據 501

20.10滑鼠鍵盤 502

20.10.1交換滑鼠左右鍵 502

20.10.2設定滑鼠雙擊的時間間隔 503

20.10.3獲得滑鼠鍵數 504

20.10.4獲取滑鼠下窗體句柄 505

20.10.5模擬滑鼠單擊按鈕 505

20.10.6在程式中添加快捷鍵 507

20.10.7在對話框中使用加速鍵 507

20.10.8處理滑鼠滾輪訊息 509

20.10.9獲取鍵盤按鍵 510

20.10.10獲取鍵盤類型及功能號 511

20.10.11控制鍵盤指示燈 512

20.11本章小結 514

20.12習題 514

第21章註冊表、INI和XML檔案(教學視頻:92分鐘) 515

21.1讀寫註冊表的API函式 515

21.1.1註冊表的概念 515

21.1.2創建帶安全屬性的註冊表項 516

21.1.3創建註冊表項 517

21.1.4打開註冊表項 518

21.1.5判斷註冊表項是否存在 519

21.1.6刪除註冊表項 519

21.1.7打開註冊表根項 520

21.1.8指定註冊表項的默認值 521

21.1.9設定註冊表鍵值 522

21.1.10快速設定註冊表鍵值字元串 523

21.2註冊表套用 524

21.2.1保存註冊表項 524

21.2.2開機自動運行 526

21.2.3隱藏和顯示我的電腦 526

21.2.4隱藏和顯示資源回收筒 527

21.2.5隱藏顯示所有驅動器 528

21.2.6禁止“查找”選單 529

21.2.7禁止“文檔”選單 529

21.2.8在退出Windows時清除“文檔”中的記錄 530

21.2.9禁用註冊表編輯器 531

21.2.10禁止使用inf檔案 532

21.2.11禁止使用reg檔案 532

21.2.12顯示隱藏檔案或資料夾 533

21.3讀寫註冊表的ATL類 534

21.3.1使用CRegKey類寫入默認鍵值 534

21.3.2使用CRegKey類寫入新鍵值 535

21.3.3使用CRegKey類查詢鍵值 536

21.4註冊表的查詢與枚舉 537

21.4.1查詢註冊表鍵值 537

21.4.2快速查詢註冊表鍵值 538

21.4.3枚舉註冊表鍵值 539

21.4.4列舉開機啟動程式 539

21.4.5枚舉註冊表項 540

21.4.6枚舉安裝程式 541

21.5INI檔案的讀寫函式 542

21.5.1向指定鍵寫入字元串 542

21.5.2獲取指定鍵下的整型數據 544

21.5.3獲取指定鍵下的字元串數據 544

21.5.4向INI檔案寫入結構數據 545

21.5.5獲取INI檔案結構數據 546

21.5.6向指定節寫入數據 547

21.5.7獲取所有節名 548

21.5.8獲取指定節的鍵名及數據 549

21.6XML檔案操作 551

21.6.1XML檔案簡介 551

21.6.2XML檔案的優勢 551

21.6.3讀取XML檔案內容 552

21.6.4向XML檔案中寫入內容 553

21.7本章小結 554

21.8習題 554

第22章動態程式庫編程(教學視頻:71分鐘) 556

22.1基本概念 556

22.1.1動態程式庫的概念 556

22.1.2動態程式庫的優點 557

22.1.3DLL的種類 558

22.1.4DLL檔案的組成 559

22.2DLL的創建與使用實例 559

22.2.1創建Win32DLL 560

22.2.2DLL的導出 561

22.2.3應用程式連結DLL 562

22.2.4動態程式庫函式 563

22.2.5從動態庫中獲取點陣圖資源 565

22.2.6枚舉模組中的所有圖示 567

22.2.7使用模組對話框資源 569

22.2.8替換應用程式的對話框資源 569

22.2.9禁止鍵盤Power鍵 571

22.2.10禁止鍵盤Win鍵 573

22.2.11禁止使用<Alt+F4>組合鍵關閉窗體 573

22.3MFC常規DLL的創建與使用實例 573

22.3.1基本概念 574

22.3.2創建MFC常規DLL 574

22.3.3MFC常規DLL的創建實例 575

22.3.4調用MFC常規DLL 576

22.4MFC擴展DLL的創建與使用實例 577

22.4.1創建MFC擴展DLL 577

22.4.2MFC擴展DLL的創建實例 578

22.4.3調用MFC擴展DLL 578

22.5DLL的查看與調試 579

22.5.1使用Depends工具查看DLL接口 579

22.5.2調試DLL 580

22.6本章小結 580

22.7習題 580

第23章多執行緒編程(教學視頻:62分鐘) 582

23.1引入多執行緒 582

23.1.1單執行緒的不足 582

23.1.2解決的問題 583

23.2進程和執行緒 583

23.2.1Spy++ 583

23.2.2多執行緒Win32API 585

23.2.3MFC對多執行緒編程的支持 586

23.3開發多執行緒程式 586

23.3.1使用Win32API函式開發 586

23.3.2MFC用戶界面執行緒的開發 587

23.3.3MFC工作者執行緒的開發 588

23.3.4掛起執行緒 590

23.3.5終止執行緒 591

23.3.6使執行緒睡眠 592

23.3.7啟動和關閉記事本 593

23.3.8調用記事本程式並掛起 595

23.3.9監測記事本程式關閉 595

23.4執行緒間的通信 596

23.4.1使用全局變數 596

23.4.2使用自定義的訊息 597

23.5執行緒的同步 598

23.5.1等待函式 599

23.5.2利用事件對象 600

23.5.3使用事件對象實例 601

23.5.4利用臨界區 602

23.5.5利用臨界區實例 603

23.5.6利用信號量 604

23.5.7利用信號量實例 605

23.5.8利用互斥對象 607

23.5.9利用互斥對象實例 607

23.6多執行緒程式實例 609

23.7本章小結 611

23.8習題 611

第6篇多媒體開發

第24章文本字型技術(教學視頻:34分鐘) 614

24.1字型對象 614

24.1.1字型要素 614

24.1.2創建字型對象 615

24.1.3獲取字型信息 616

24.1.4字型對象使用實例 617

24.2字型效果 617

24.2.1如何設計空心字 617

24.2.2漸變顏色的字型 618

24.2.3獲取路徑信息點 619

24.2.4文字跟隨滑鼠 620

24.2.5如何實現旋轉字型 620

24.2.6文字水平滾動 621

24.2.7字型垂直滾動 622

24.2.8設計3D立體文字 623

24.3本章小結 624

24.4習題 624

第25章圖形與圖像編程(教學視頻:109分鐘) 625

25.1點陣圖和區域對象 625

25.1.1設備相關點陣圖(DDB) 625

25.1.2CBitmap套用實例 626

25.1.3設備無關點陣圖(DIB) 627

25.1.4區域對象(CRgn) 627

25.1.5CRgn套用實例 628

25.2畫筆和畫刷 629

25.2.1使用畫筆對象 629

25.2.2使用畫筆繪圖實例 630

25.2.3使用畫刷對象 631

25.2.4使用畫刷繪圖實例 631

25.3圖像基礎技術 632

25.3.1如何使用GDI+ 632

25.3.2如何創建含有點陣圖的畫刷 633

25.3.3保存螢幕抓圖檔案 634

25.3.4利用記憶體畫布防止繪圖時出現螢幕閃爍 635

25.3.5創建幾何畫筆 636

25.3.6繪製格線 637

25.3.7創建不同的畫刷 638

25.3.8填充矩形區域 639

25.3.9模擬時鐘 640

25.3.10顏色漸變算法 642

25.3.11如何繪製漸變顏色 643

25.3.12圖元檔案的保存與打開 644

25.3.13圖像居中顯示 645

25.3.14圖片融合效果 646

25.3.15保存設備上下文 647

25.4特殊曲線 648

25.4.1繪製蝸牛線 648

25.4.2繪製貝塞爾曲線 649

25.4.3繪製正弦曲線 650

25.5圖像特效 651

25.5.1圖像銳化處理 652

25.5.2圖像柔化處理 653

25.5.3圖像反色處理 654

25.5.4圖像灰度處理 655

25.5.5圖像浮雕效果 657

25.5.6圖像翻轉 658

25.5.7圖像縮放 659

25.5.8圖片剪下 659

25.5.9圖片馬賽克效果 660

25.5.10垂直百葉窗顯示圖片 662

25.5.11水平百葉窗顯示圖片 663

25.6圖像控制 664

25.6.1在圖片上繪製線條 664

25.6.2在圖片上繪製格線 665

25.6.3打開高顏色質量圖像 665

25.6.4創建最頂層窗體 666

25.6.5在視圖中拖動圖片 667

25.6.6螢幕截圖 669

25.6.7保存螢幕圖像到剪貼簿 670

25.6.8獲取圖像RGB值 670

25.6.9漸隱漸顯的圖像 671

25.6.10保留橢圓中圖片內容 673

25.6.11去除橢圓下的圖片內容 674

25.7本章小結 676

25.8習題 676

第26章聲音與動畫編程(教學視頻:34分鐘) 677

26.1多媒體聲音控制 677

26.1.1錄製與播放聲音 677

26.1.2可以選擇曲目的CD播放器 680

26.1.3控制音量 681

26.1.4利用PC喇叭播放聲音 682

26.1.5定時播放WAV檔案 682

26.1.6播放MIDI檔案 683

26.1.7開發具有記憶功能的MP3播放器 683

26.2多媒體套用 684

26.2.1滾動字型作屏保 684

26.2.2相冊作屏保 686

26.2.3設計畫圖程式 687

26.3動畫效果 688

26.3.1標題欄動畫圖示 689

26.3.2實現圖示動畫 689

26.3.3系統托盤動態圖示 690

26.4多媒體檔案的播放 691

26.4.1播放GIF動畫 692

26.4.2播放Flash動畫 693

26.4.3播放VCD 693

26.4.4顯示JPEG圖像 694

26.5本章小結 696

26.6習題 696

第27章DirectX圖形開發(教學視頻:97分鐘) 697

27.1DirectXSDK 697

27.1.1DirectXSDK的安裝 697

27.1.2VisualStudio2010中的相應設定 698

27.2DirectX9.0介紹 701

27.2.1DirectX組件介紹 701

27.2.2使用COM 701

27.3DirectX圖形開發基本概念 702

27.3.1世界坐標系 702

27.3.2攝影坐標系 702

27.3.3剪裁和透視投影 703

27.3.4視口變換和像素的光柵顯示 703

27.3.5顯示卡的3D渲染管道線 704

27.4基本三角形面的繪製 705

27.4.1DirectXGraphics基本套用架構 705

27.4.2創建IDirect3D9接口對象 706

27.4.3創建Direct3D設備 706

27.4.4創建頂點緩衝區 707

27.4.5啟動管道流水線進行渲染 708

27.4.6實例——繪製一個基本的三角形面 709

27.5基本立體面的繪製 712

27.5.13D原始類型 712

27.5.2背面剔除和頂點順序 715

27.5.3頂點索引緩衝區 716

27.5.4在世界坐標系中放置物體 716

27.5.5架設攝影機進行取景和投影 717

27.5.6螢幕視口的設定 717

27.5.7實例——繪製一個基本的立體面 717

27.6材質和光照處理 721

27.6.1顏色與光照 721

27.6.2光源設定 723

27.6.3點光源 723

27.6.4聚焦光源 724

27.6.5方向光源 724

27.6.6材質設定 724

27.6.7頂點的法向量 725

27.7紋理貼圖 726

27.7.1頂點的紋理坐標 726

27.7.2創建紋理對象 727

27.7.3紋理過濾技術 729

27.7.4紋理地址模式 729

27.8Alpha顏色混合 730

27.8.1顏色混合原理 730

27.8.2Alpha顏色混合例子 731

27.8.3利用ID3DXSprite實現顏色透明 732

27.8.4利用Alpha測試實現顏色透明 733

27.9XFile格線的套用 734

27.9.1.x檔案的基本格式 734

27.9.2.x檔案的數據裝入 737

27.9.3Mesh數據的處理 738

27.9.4Mesh數據的最佳化 738

27.10本章小結 739

27.11習題 739

第7篇項目開發實戰

第28章網路音頻播放系統(教學視頻:24分鐘) 742

28.1系統分析與設計 742

28.1.1功能描述 742

28.1.2功能模組設計 742

28.2界面實現 743

28.2.1界面設計 743

28.2.2界面初始化 744

28.2.3界面代碼 745

28.3核心實現 751

28.3.1執行緒同步類 751

28.3.2音頻驅動函式 752

28.3.3CAudioPlay類的聲明 755

28.3.4音頻播放器初始化 757

28.3.5音頻採樣處理 758

28.3.6音頻輸出實現 762

28.3.7打開音頻檔案 763

28.3.8停止音頻播放 766

28.3.9暫停音頻和繼續音頻 767

28.3.10獲取音頻屬性 767

28.4程式運行效果 770

28.5本章小結 770

第29章GPS定位系統(教學視頻:46分鐘) 771

29.1GPS監控系統概況 771

29.1.1GPS監控系統概述 771

29.1.2GPS監控系統的系統架構 771

29.2GPS數據通信協定NEMA0183協定 774

29.2.1配置參數及協定格式 774

29.2.2NEMA0183標準語句 774

29.2.3GARMIN定義的語句 777

29.2.4NEMA0183協定的TEXT文本格式 778

29.3串口接收GPS信息程式設計 779

29.3.1實例背景 780

29.3.2GPS模組與串口的通信協定 780

29.3.3程式功能 780

29.3.4界面設計 780

29.3.5結構聲明 782

29.3.6初始化操作 786

29.3.7GPS數據接收的實現方法 788

29.3.8GPS數據解析的實現方法 791

29.3.9多執行緒串口工作方式 799

29.3.10傳送命令 806

29.3.11結束清理 808

29.3.12地圖支持 808

29.3.13程式測試截圖 810

29.4本章小結 811

VisualC++編程實戰寶典

目錄

相關詞條

相關搜尋

熱門詞條

聯絡我們