Visual C++寶典

《VisualC++寶典》是2011年電子工業出版社出版的圖書。

內容簡介

c++語言是從c語言發展而來的一種面向對象的高級語言,而visual c++則是c/c++ ide,即集成開發環境。《Visual C++寶典》從c++基礎開始講解,由原理到實踐、由淺到深、全面地介紹了在visual c++環境下,如何利用c++語言編寫windows應用程式。

《Visual C++寶典》分為4部分,包括33章。第1部分是visual c++編程入門介紹,介紹了windows編程的入門知識和c++語言的一些基礎知識;第2部分是visual c++分類應用程式編程介紹,包括windows套用編程和控制台程式,以及在visual c++下如何編寫win32程式、對話框程式、單文檔與多文檔程式、動態程式庫和activex控制項程式;第3部分是visual c++功能應用程式介紹,在本部分中,講解了visual c++下最常見的操作編程,包括檔案操作、數據處理、系統時間、錯誤與異常處理、多執行緒技術、定時器、輸入輸出設備、串口編程、網路編程、資料庫編程、windows記憶體管理、程式調試以及網路安全等;第4部分介紹了visual c++的一些雜項編程,包括界面控制、office檔案的讀寫操作、檔案與資料夾、程式控制以及系統控制等。

《Visual C++寶典》內容豐富、實用性強,許多代碼可以直接套用到工程項目中,它適合於visual c++ 6.0的初學者和使用visual c++從事開發的程式設計師使用,對於具有一定visual c++編程經驗的讀者,《Visual C++寶典》也是非常好的參考書。

目錄

第1部分 visual c++編程入門 1

第1章 windows編程入門 2

1.1 windows開發簡介 2

1.1.1 windows套用編程接口(api) 2

1.1.2 軟體開發工具包(sdk) 3

1.2 windows編程基礎知識 3

1.2.1 windows編程的基本概念 3

1.2.2 windows應用程式框架結構 6

1.3 visual c++編程庫概要 12

1.3.1 c++標準庫 12

1.3.2 c運行時(crt)庫 15

1.3.3 活動模板庫(atl) 15

1.3.4 微軟基礎庫(mfc) 16

1.4 visual c++ 6.0使用介紹 16

1.4.1 visual c++ 6.0簡介 16

1.4.2 visual c++ 6.0集成開發環境 17

1.4.3 visual c++ 6.0編程操作介紹 27

1.5 小結 31

第2章 c++編程基礎 33

2.1 類和數據抽象 33

2.1.1 如何抽象數據為類 33

2.1.2 類與結構體 35

2.1.3 類的訪問許可權 36

2.1.4 構造函式與析構函式 37

2.2 類的繼承 40

2.2.1 子類如何繼承父類 41

2.2.2 子類對父類的訪問許可權 42

2.2.3 多態 43

2.3 函式和運算符的重載 45

2.3.1 函式重載 45

2.3.2 運算符重載 46

2.4 函式和類的模板 49

2.4.1 創建函式模板 50

2.4.2 函式模板的調用 52

2.4.3 創建類模板 53

2.4.4 類模板調用 54

2.5 小結 56

第2部分 visual c++分類套用編程 57

第3章 視窗和視窗訊息 58

3.1 視窗和視窗類 58

3.1.1 cobject、ccmdtarget和cwnd類簡介 58

3.1.2 mfc創建一個視窗 61

3.1.3 視窗顯示與隱藏 64

3.1.4 設定視窗的位置和大小 64

3.2 視窗訊息 66

3.2.1 視窗訊息概況 67

3.2.2 視窗移動以及大小改變 67

3.2.3 按鍵訊息 70

3.2.4 滑鼠訊息 73

3.2.5 自定義傳送視窗訊息 76

3.3 小結 80

第4章 win32應用程式和控制台程式 81

4.1 win32應用程式和控制台程式簡介 81

4.2 win32應用程式編程 81

4.2.1 win32應用程式編程必備知識 81

4.2.2 win32應用程式簡例 83

4.2.3 常見訊息處理 85

4.2.4 在win32應用程式中加入控制項 87

4.2.5 在win32應用程式中加入對話框 89

4.3 win32控制台程式編程 91

4.3.1 win32控制台程式簡例 91

4.3.2 控制台程式的輸出控制 93

4.3.3 操作控制台 95

4.4 小結 98

第5章 gdi繪圖 99

5.1 cdc類介紹 99

5.1.1 cdc類 99

5.1.2 cdc類的派生類 101

5.2 畫筆和畫刷 101

5.2.1 畫筆 101

5.2.2 畫刷 102

5.3 圖形繪製 104

5.3.1 點的繪製 104

5.3.2 直線的繪製 105

5.3.3 矩形的繪製 105

5.3.4 橢圓的繪製 109

5.4 文字繪製 109

5.4.1 繪製文字的函式 110

5.4.2 文字的背景色和前景色 112

5.4.3 文字的字型 113

5.5 點陣圖顯示 116

5.5.1 點陣圖介紹 117

5.5.2 點陣圖顯示 118

5.5.3 實例:桌面塗鴉 119

5.6 小結 125

第6章 mfc控制項 126

6.1 mfc控制項簡介 126

6.1.1 什麼是mfc 126

6.1.2 控制項簡介 127

6.2 mfc控制項介紹 127

6.2.1 按鈕控制項 128

6.2.2 靜態控制項 130

6.2.3 文本框控制項 132

6.2.4 下拉列表框 135

6.2.5 列表框 138

6.2.6 列表視圖控制項 140

6.2.7 樹視圖控制項 143

6.3 控制項編程 145

6.3.1 實例:文本框控制項的使用 146

6.3.2 實例:下拉列表框控制項的使用 147

6.3.3 實例:列表框控制項的使用 148

6.3.4 實例:列表視圖控制項的使用 150

6.4 小結 152

第7章 動態程式庫(dll) 154

7.1 動態程式庫程式架構 154

7.1.1 dll的入口 154

7.1.2 lib檔案 155

7.1.3 def檔案 156

7.1.4 頭檔案 157

7.2 non-mfc dll 159

7.2.1 non-mfc dll編寫規範說明 159

7.2.2 實例:non-mfc dll例子程式 160

7.3 mfc規則dll 161

7.3.1 mfc規則dll編寫規範說明 162

7.3.2 實例:mfc規則dll例子程式 163

7.4 mfc擴展dll 164

7.4.1 mfc擴展dll編寫規範說明 164

7.4.2 實例:mfc擴展dll例子程式 166

7.5 調用dll 167

7.5.1 隱式調用 167

7.5.2 實例:隱式調用dll例子程式 168

7.5.3 顯式調用 170

7.5.4 實例:顯式調用dll例子程式 171

7.6 小結 175

第8章 單文檔應用程式(sdi) 176

8.1 單文檔的基本組成 176

8.1.1 單文檔結構概述 176

8.1.2 單文檔中文檔和視圖的創建 177

8.1.3 文檔類 177

8.1.4 視圖類 179

8.1.5 框架類 180

8.2 單文檔的主要編程技巧 180

8.2.1 切分視窗 181

8.2.2 單文檔中顯示點陣圖 184

8.3 工具列、狀態欄和選單 187

8.3.1 工具列 187

8.3.2 狀態欄 191

8.3.3 選單 193

8.4 小結 197

第9章 多文檔應用程式(mdi) 199

9.1 多文檔應用程式的結構 199

9.1.1 多文檔應用程式典型結構 199

9.1.2 mdi多文檔模板應用程式 201

9.1.3 無視圖的mdi應用程式 203

9.2 多文檔的主要編程技巧 204

9.2.1 實例:mdi應用程式啟動時子視窗默認最大化 205

9.2.2 實例:創建帶滾動條的窗體 206

9.2.3 實例:mdi應用程式啟動時主視窗默認最大化 207

9.2.4 實例:保存視窗狀態 208

9.3 小結 210

第10章 對話框應用程式 211

10.1 對話框應用程式架構 211

10.1.1 無模式對話框 211

10.1.2 模式對話框 213

10.1.3 對話框數據的交換和驗證 214

10.1.4 使用對話框的一個實例 215

10.2 通用對話框 220

10.2.1 檔案選擇對話框 221

10.2.2 顏色選擇對話框 223

10.2.3 查找和替換對話框 224

10.2.4 列印對話框 225

10.2.5 列印頁面設定對話框 226

10.2.6 字型選擇對話框 227

10.2.7 選擇多個檔案的實例 228

10.3 創建一個不規則形狀窗體 230

10.4 小結 234

第11章 gdi+基礎編程 236

11.1 gdi+的基本圖形繪製 236

11.1.1 直線與曲線 236

11.1.2 矩形與橢圓 237

11.1.3 弧與扇形 239

11.2 gdi+顯示圖片 241

11.2.1 顯示圖片 241

11.2.2 顯示動態gif圖片 243

11.3 gdi+畫筆與畫刷 246

11.3.1 畫筆 246

11.3.2 畫刷 248

11.4 圖像處理技巧 249

11.4.1 半透明圖像 249

11.4.2 圖形的大小、平移和旋轉 252

11.5 小結 254

第12章 activex控制項 256

12.1 activex控制項的概要介紹 256

12.1.1 activex程式的基本結構 256

12.1.2 activex控制項分類 257

12.1.3 activex程式的開發 257

12.2 activex控制項的開發範例 259

12.2.1 在網頁上顯示activex控制項 259

12.2.2 在網頁中顯示帶控制項的activex控制項 262

12.2.3 通過網頁向activex控制項傳遞參數 263

12.2.4 實現activex控制項的事件 265

12.3 小結 267

第3部分 visual c++功能套用編程 269

第13章 檔案操作 270

13.1 讀寫檔案 270

13.1.1 使用windows api 270

13.1.2 使用c運行時庫 273

13.1.3 使用cfile類 275

13.1.4 使用cstdiofile類 277

13.1.5 案例:使用4種檔案操作方式讀寫檔案 278

13.2 讀寫ini檔案 283

13.2.1 使用windows api 283

13.2.2 案例:使用api函式讀寫ini檔案 284

13.3 讀寫註冊表 287

13.3.1 使用windows api 287

13.3.2 使用cregkey類 291

13.3.3 實例:使用兩種方式對註冊表進行操作 295

13.4 小結 300

第14章 數據處理 301

14.1 字元串處理 301

14.1.1 分割字元串 301

14.1.2 自定義格式化字元串 304

14.1.3 實例:字元串處理例子程式 306

14.2 格式轉換 309

14.2.1 數值型與字元串型的轉換 310

14.2.2 大寫與小寫的轉換 311

14.2.3 unicode編碼簡介 313

14.2.4 unicode配置開發環境 314

14.2.5 實例:格式轉換例子程式 316

14.3 小結 320

第15章 系統時間 322

15.1 使用windows api 322

15.1.1 使用windows api函式 322

15.1.2 實例:基於windows api的系統時間例子程式 323

15.2 使用c運行時庫 327

15.2.1 時間格式分類 327

15.2.2 時間格式的轉換 329

15.2.3 實例:基於c運行時庫的系統時間程式 333

15.3 使用mfc類 335

15.3.1 ctime與ctimespan 335

15.3.2 coledatetime與coledatetimespan 337

15.3.3 實例:基於mfc類的系統時間程式 339

15.4 小結 343

第16章 錯誤與異常處理 345

16.1 錯誤處理 345

16.1.1 windows api的錯誤處理 345

16.1.2 用戶程式的錯誤處理 347

16.1.3 實例:錯誤處理程式 351

16.2 異常處理 356

16.2.1 異常的拋出 358

16.2.2 異常的捕獲 361

16.2.3 異常的處理 363

16.2.4 實例:異常處理程式 364

16.3 小結 368

第17章 多執行緒 370

17.1 單執行緒與多執行緒 370

17.2 輔助執行緒與主執行緒 371

17.2.1 輔助執行緒的開啟 371

17.2.2 輔助執行緒的結束 374

17.2.3 輔助執行緒一般的代碼結構 374

17.3 執行緒的通信與同步 376

17.3.1 全局變數 377

17.3.2 事件 377

17.3.3 自定義訊息 378

17.3.4 信號量 380

17.3.5 臨界區 381

17.3.6 互斥 382

17.3.7 實例:執行緒通信與同步程式 383

17.4 共享數據保護 389

17.4.1 什麼是共享數據 389

17.4.2 如何保護共享數據 390

17.4.3 實例:執行緒共享數據例子程式 391

17.5 執行緒與進程的優先權 396

17.5.1 優先權的意義 396

17.5.2 進程的優先權 397

17.5.3 執行緒的優先權 398

17.5.4 實例:執行緒與進程優先權例子程式 399

17.6 小結 407

第18章 定時器 409

18.1 定時器介紹 409

18.2 一般定時器 410

18.2.1 定時器的創建 410

18.2.2 定時器的銷毀 412

18.2.3 定時器的計時方式 412

18.2.4 實例:一般定時器例子程式 412

18.3 多媒體定時器 417

18.3.1 多媒體定時器的計時方式 417

18.3.2 多媒體定時器創建 417

18.3.3 多媒體定時器的回調函式 419

18.3.4 實例:多媒體定時器程式 420

18.4 自定義定時器 425

18.5 小結 428

第19章 訊息處理 429

19.1 訊息概要介紹 429

19.1.1 訊息結構 429

19.1.2 訊息分類 430

19.1.3 訊息佇列 432

19.1.4 訊息的傳送 433

19.1.5 訊息的接收 436

19.2 windows訊息處理 438

19.3 自定義訊息 440

19.3.1 使用on_message 440

19.3.2 使用on_registered_message 441

19.4 實例:自定義訊息例子程式 442

19.5 小結 447

第20章 輸入設備控制 449

20.1 主要的輸入設備 449

20.1.1 滑鼠輸入設備 449

20.1.2 鍵盤輸入設備 450

20.2 滑鼠輸入方法 450

20.2.1 更改滑鼠游標 450

20.2.2 模擬滑鼠輸入 452

20.3 鍵盤輸入方法 453

20.3.1 控制鍵盤輸入 454

20.3.2 模擬鍵盤輸入 456

20.4 實例:滑鼠與鍵盤例子程式 457

20.5 鉤子程式 461

20.5.1 鉤子(hook) 461

20.5.2 實例:鍵盤鉤子例子程式 464

20.6 小結 467

第21章 串口編程 468

21.1 串口編程概要介紹 468

21.1.1 串口的種類 468

21.1.2 串口的通信方式 469

21.1.3 xmodem協定 470

21.2 使用windows api 472

21.2.1 串口的打開 472

21.2.2 串口的初始化 474

21.2.3 串口通信事件處理 478

21.2.4 串口數據的收發 480

21.2.5 串口的逾時設定 482

21.2.6 串口通信狀態與通信錯誤 484

21.2.7 實例:基於windows api的串口例子程式 484

21.3 使用activex控制項 497

21.3.1 使用mscomm控制項 498

21.3.2 mscomm控制項的屬性設定 498

21.3.3 數據的收發 504

21.3.4 實例:基於mscomm控制項的串口例子程式 504

21.4 小結 507

第22章 網路編程 509

22.1 網路編程概要 509

22.1.1 網路參考模型 509

22.1.2 通信連線方式 511

22.1.3 winsock技術 513

22.2 winsock詳解 514

22.2.1 winsock基本函式講解 514

22.2.2 winsock信息獲取函式 519

22.2.3 winsock輔助函式 524

22.3 tcp程式 527

22.3.1 tcp概要 527

22.3.2 tcp客戶端與服務端的流程 528

22.3.3 實例:tcp客戶端例子程式 529

22.3.4 實例:tcp伺服器例子程式 530

22.4 udp程式 532

22.4.1 udp概要 532

22.4.2 點對點通信 534

22.4.3 實例:udp點對點例子程式 534

22.4.4 廣播通信 538

22.4.5 實例:udp廣播例子程式 538

22.4.6 組播通信 541

22.4.7 實例:udp組播例子程式 541

22.5 小結 545

第23章 資料庫編程 547

23.1 常用資料庫簡介 547

23.1.1 microsoft office access 547

23.1.2 microsoft sql server 548

23.1.3 mysql 549

23.2 odbc資料庫編程 549

23.2.1 odbc簡介 549

23.2.2 使用cdatabase類 551

23.2.3 資料庫的連線與關閉 552

23.2.4 使用crecordset類 553

23.2.5 記錄集的建立和關閉 555

23.2.6 數據的查詢 557

23.2.7 修改、添加和刪除記錄 558

23.2.8 使用crecordview類 560

23.2.9 實例:odbc資料庫管理例子程式 562

23.3 ado資料庫編程 571

23.3.1 ado技術簡介 571

23.3.2 引用ado庫的3種方式 571

23.3.3 資料庫的連線與關閉 573

23.3.4 執行sql命令 575

23.3.5 獲取記錄集 577

23.3.6 添加、刪除和修改記錄 580

23.3.7 實例:ado資料庫管理例子程式 581

23.4 小結 587

第24章 記憶體管理 588

24.1 windows記憶體管理 588

24.1.1 虛擬記憶體 588

24.1.2 記憶體映射檔案 591

24.1.3 記憶體堆疊 595

24.2 c/c++的記憶體操作 597

24.2.1 c的記憶體操作 597

24.2.2 c++的記憶體操作 600

24.3 記憶體最佳化 602

24.3.1 防止記憶體泄露 602

24.3.2 防止訪問記憶體違例 604

24.4 小結 606

第25章 程式調試 607

25.1 調試器 607

25.1.1 vc6.0自帶調試器 607

25.1.2 調試工具windbg 612

25.2 程式調試排錯的一般方法 615

25.2.1 程式的錯誤分類 616

25.2.2 排錯過程的常用小工具 617

25.3 windbg調試實例 619

25.4 小結 622

第26章 網路安全 623

26.1 網路安全簡介 623

26.2 網路安全重要性 624

26.3 網路安全方法 624

26.3.1 物理安全策略 624

26.3.2 訪問控制 625

26.3.3 信息加密策略 626

26.3.4 防火牆控制 626

26.4 黑客與病毒防範 627

26.4.1 黑客及防範技術 627

26.4.2 病毒簡介 629

26.5 案例:進程注入技術實例 630

26.6 小結 637

第27章 windows拖放協定 638

27.1 拖放介紹 638

27.2 拖放方法 638

27.2.1 檔案管理器拖放 638

27.2.2 檔案管理器拖放原理與實例 640

27.2.3 ole拖放原理 641

27.2.4 ole拖放原理與實例 642

27.3 拖放與剪貼簿 645

27.3.1 剪貼簿相關的api函式 645

27.3.2 使用剪貼簿複製文本 647

27.4 案例:控制項之間進行拖放 648

27.5 小結 652

第4部分 visual c++編程雜項 653

第28章 界面控制 654

28.1 使用托盤圖示 654

28.1.1 托盤圖示的介紹 654

28.1.2 增加托盤圖示 656

28.1.3 為托盤圖示添加訊息回響 657

28.1.4 修改托盤圖示 660

28.2 對話框中顯示工具列與狀態欄 662

28.2.1 對話框中顯示工具列 662

28.2.2 對話框中顯示工具列的例子程式 665

28.2.3 對話框中顯示狀態欄 667

28.2.4 實例:對話框中顯示狀態欄的例子程式 669

28.3 控制項自繪 671

28.3.1 文本框控制項自繪 671

28.3.2 顏色間隔的列表視圖控制項 672

28.3.3 自繪進度條 675

28.3.4 顯示顏色的下拉列表框控制項 678

28.3.5 自繪列表框控制項 680

28.4 小結 684

第29章 讀寫office檔案 685

29.1 ole自動化與vba 685

29.1.1 ole自動化概述 685

29.1.2 vba概述 686

29.2 讀寫word檔案 686

29.2.1 使用ole自動化接口 686

29.2.2 實例:word操作 689

29.3 讀寫excel檔案 692

29.3.1 使用odbc 692

29.3.2 使用ole自動化接口 693

29.3.3 實例:excel操作 694

29.4 小結 697

第30章 檔案與資料夾 698

30.1 創建捷徑 698

30.1.1 捷徑概述 698

30.1.2 創建應用程式捷徑 698

30.2 檔案與資料夾的複製與刪除 701

30.2.1 使用windows api 701

30.2.2 使用windows外殼(shell) 703

30.2.3 實例:檔案與資料夾操作例子程式 706

30.3 系統資料夾與檔案 714

30.3.1 獲取windows資料夾 714

30.3.2 獲取system資料夾 715

30.3.3 獲取當前資料夾 716

30.4 系統臨時檔案 716

30.4.1 獲取系統臨時資料夾——gettemppath函式 717

30.4.2 獲取系統臨時——getlongpathname函式 717

30.5 小結 718

第31章 程式控制 719

31.1 只運行一個程式實例 719

31.1.1 查找視窗控制程式實例 719

31.1.2 互斥信號量 721

31.1.3 屬性名與屬性值 724

31.1.4 實例:只運行一個實例的例子程式 725

31.2 獲取可執行程式的圖示 727

31.3 運行外部程式 728

31.3.1 api函式介紹 729

31.3.2 不等待外部程式執行完畢 731

31.3.3 等待外部程式執行完畢 731

31.3.4 向外部程式發訊息 732

31.3.5 強制終止外部程式 733

31.3.6 實例:強制終止例子程式 736

31.4 小結 738

第32章 系統控制 739

32.1 系統控制概要 739

32.2 關閉與打開顯示器 739

32.2.1 關閉顯示器 739

32.2.2 打開顯示器 740

32.3 關閉與重啟系統 741

32.3.1 關閉系統 741

32.3.2 重啟系統 744

32.4 獲取作業系統版本 745

32.5 獲取系統ip信息 746

32.6 打開與關閉cd-rom 747

32.7 實例:系統控制例子程式 748

32.8 小結 753

第33章 延時處理 755

33.1 延時概要 755

33.1.1 為什麼要延時 755

33.1.2 延時的數量級 755

33.2 簡單的延時處理 758

33.2.1 使用sleep函式 758

33.2.2 自己計時的延時處理 758

33.3 可處理訊息的延時處理 759

33.3.1 使用gettickcount 759

33.3.2 使用queryperformancecounter 760

33.4 實例:延時例子程式 761

33.5 小結 763

相關詞條

相關搜尋

熱門詞條

聯絡我們