VC++深入詳解(修訂版)

VC++深入詳解(修訂版)

《VC++深入詳解(修訂版)》是2012年7月電子工業出版社出版的圖書,作者是孫鑫。

基本介紹

  • 中文名:VC++深入詳解(修訂版)
  • 作者:孫鑫
  • ISBN:9787121173608
  • 頁數:784頁
  • 定價:99元
  • 出版社:電子工業出版社
  • 出版時間:2012年7月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

從實際套用入手,由淺入深、循序漸進地講述Windows程式內部運行機制、MFC框架、文本、選單、對話框、檔案操作、網路編程、進程間通信ActiveX控制項、動態程式庫、HOOK編程等多個主題。全書還貫穿作者多年來學習編程的一些經驗,以及一些學習方法的建議,為讀者進一步的學習提供指導。
本書不同於一般的講述VC++使用的書籍,本書主要從程式內部運行的機制和MFC程式的組織脈絡入手,使讀者在學習VC++編程知識時,既能夠知其然,又能知其所以然,從而幫助讀者從根本上理解和掌握Windows的程式設計。
本書的配套光碟還免費提供近45小時的VC++教學視頻,讀者在學習的過程中可以將視頻和書互為參考,配合學習,這樣可以更快、更好地掌握VC++編程。

圖書目錄

目 錄
第1章 Windows程式內部運行機制 1
1.1 API與SDK 1
1.2 視窗與句柄 2
1.3 訊息與訊息佇列 3
1.4 WinMain函式 4
1.4.1 WinMain函式的定義 5
1.4.2 視窗的創建 6
1.4.3 訊息循環 13
1.4.4 編寫視窗過程函式 15
1.5 動手寫第一個Windows程式 19
1.6 訊息循環的錯誤分析 23
1.7 變數的命名約定 25
1.8 小結 26
第2章 掌握C++ 27
2.1 從結構到類 27
2.1.1 結構體的定義 27
2.1.2 結構體與類 29
2.2 C++的特性 30
2.2.1 類與對象 34
2.2.2 構造函式 34
2.2.3 析構函式 37
2.2.4 函式的重載 37
2.2.5 this指針 39
2.2.6 類的繼承 41
2.2.7 虛函式與多態性、
2.2.7 純虛函式 48
2.2.8 函式的覆蓋和隱藏 52
2.2.9 引用 55
2.2.10 C++類的設計習慣及頭檔案
2.2.10 重複包含問題的解決 57
2.2.11 VC++程式編譯連結的
2.2.11 原理與過程 61
第3章 MFC框架程式剖析 63
3.1 MFC AppWizard 63
3.2 基於MFC的程式框架剖析 66
3.2.1 MFC程式中的
3.2.1 WinMain函式 67
3.2.2 MFC框架視窗 78
3.2.3 訊息循環 85
3.2.4 視窗過程函式 86
3.2.5 文檔/視類結構 87
3.2.6 幫助對話框類 88
3.3 視窗類、視窗類對象與視窗 88
3.3.1 三者之間關係 88
3.3.2 在視窗中顯示按鈕 92
3.4 本章小結 99
第4章 簡單繪圖 100
4.1 MFC訊息映射機制 100
4.1.1 ClassWizard 101
4.2 繪製線條 112
4.2.1 利用SDK全局函式實現
4.2.4 畫線功能 114
4.2.2 利用MFC的CDC類實現
4.2.4 畫線功能 115
4.2.3 利用MFC的CClientDC類
4.2.4 實現畫線功能 116
4.2.4 利用MFC的CWindowDC類
4.2.4 實現畫線功能 117
4.2.5 在桌面視窗中畫線 118
4.2.6 繪製彩色線條 119
4.3 使用畫刷繪圖 121
4.3.1 簡單畫刷 121
4.3.2 點陣圖畫刷 122
4.3.3 透明畫刷 124
4.4 繪製連續線條 130
4.5 繪製扇形效果的線條 132
第5章 文本編程 135
5.1 插入符 135
5.1.1 創建文本插入符 135
5.1.2 創建圖形插入符 139
5.2 視窗重繪 140
5.2.1 OnDraw函式 141
5.2.2 添加字元串資源 142
5.3 路徑 144
5.4 字元輸入 149
5.4.1 設定字型 153
5.4.2 字幕變色功能的實現 156
5.5 本章小結 161
第6章 選單 162
6.1 選單命令回響函式 162
6.2 選單命令的路由 165
6.2.1 程式類對選單命令的
4.2.4 回響順序 165
6.2.2 Windows訊息的分類 166
6.2.3 選單命令的路由 166
6.3 基本選單操作 169
6.3.1 標記選單 169
6.3.2 默認選單項 172
6.3.3 圖形標記選單 174
6.3.4 禁用選單項 177
6.3.5 移除和裝載選單 181
6.3.6 MFC選單命令更新機制 183
6.3.7 快捷選單 187
6.4 動態選單操作 193
6.4.1 添加選單項目 194
6.4.2 插入選單項目 195
6.4.3 刪除選單 198
6.4.4 動態添加的選單項的
6.4.4 命令回響 199
6.5 電話本示例程式 200
6.5.1 動態添加子選單的實現 201
6.5.2 顯示輸入的字元 203
6.5.3 添加選單項及其命令
6.5.3 回響函式 206
6.5.4 框架類視窗截獲選單
6.5.3 命令訊息 211
6.6 本章小結 218
第7章 對話框(一) 219
7.1 對話框基本知識 219
7.1.1 常用控制項介紹 219
7.1.2 對話框的種類 220
7.2 對話框的創建和顯示 220
7.2.1 模態對話框的創建 224
7.2.2 非模態對話框的創建 225
7.3 動態創建按鈕 228
7.4 控制項的訪問 232
7.4.1 控制項的調整 232
7.4.2 靜態文本控制項 233
7.4.3 編輯框控制項 235
7.5 對話框伸縮功能的實現 248
7.6 輸入焦點的傳遞 254
7.7 默認按鈕的進一步說明 262
7.8 本章小結 263
第8章 對話框(二) 264
8.1 “逃跑”按鈕的實現 264
8.2 屬性表單和嚮導的創建 271
8.2.1 創建屬性頁 276
8.2.2 創建屬性表單 282
8.2.3 嚮導的創建 287
8.3 本章小結 307
附錄 307
第9章 定製應用程式外觀 311
9.1 修改應用程式視窗的
9.1 外觀 311
9.1.1 在視窗創建之前修改 311
9.1.2 在視窗創建之後修改 314
9.2 修改視窗的游標、
9.2 圖示和背景 316
9.2.1 在視窗創建之前修改 316
9.2.2 在視窗創建之後修改 320
9.3 模擬動畫圖示 322
9.3.1 載入圖示資源 322
9.3.2 定時器的處理 324
9.4 工具列編程 327
9.4.1 在工具列上添加和
9.4.1 刪除按鈕 328
9.4.2 創建工具列 329
9.5 狀態欄編程 339
9.6 進度欄編程 345
9.6.1 在視窗中創建進度欄 346
9.6.2 在狀態欄的窗格中創建
9.6.2 進度欄 347
9.7 在狀態欄上顯示滑鼠
9.7 當前位置 354
9.8 啟動畫面 357
9.9 本章小結 360
第10章 繪圖控制 361
10.1 簡單繪圖 361
10.2 設定對話框 366
10.2.1 設定線寬 366
10.2.2 設定線型 370
10.3 顏色對話框 372
10.4 字型對話框 377
10.5 示例對話框 382
10.6 改變對話框和控制項的背景及
10.6 文本顏色 386
10.6.1 改變整個對話框及其上子
10.6.1 控制項的背景色 387
10.6.2 僅改變某個子控制項的背景
10.6.1 及文本顏色 388
10.6.3 改變控制項上的文本字型 391
10.6.4 改變按鈕控制項的背景色
10.6.1 及文本顏色 392
10.7 點陣圖的顯示 398
10.8 本章小結 403
第11章 圖形的保存和重繪 404
11.1 坐標空間和轉換 404
11.1.1 坐標空間 404
11.1.2 轉換 405
11.1.3 邏輯坐標和設備坐標 409
11.2 圖形的保存和重繪 411
11.2.1 集合類CPtrArray 413
11.2.2 OnPaint與OnDraw 417
11.3 視窗滾動功能的實現 419
11.3.1 CScrollView類 419
11.3.2 圖形錯位現象 421
11.4 元檔案 426
11.4.1 元檔案的使用 426
11.4.2 元檔案的保存
11.4.2 與打開 429
11.5 兼容設備描述表 431
11.6 本章小結 434
第12章 檔案和註冊表操作 435
12.1 const char*和char* const 435
12.1.1 const char* 435
12.1.2 char* const 436
12.2 C語言對檔案操作的支持 437
12.2.1 檔案的打開 437
12.2.2 檔案的寫入 438
12.2.3 檔案的關閉 439
12.2.4 fflush函式 440
12.2.5 檔案指針定位 440
12.2.6 檔案的讀取 442
12.2.7 二進制檔案和文本檔案 445
12.2.8 文本方式和二進制方式 448
12.3 C++對檔案操作的支持 451
12.4 Win32 API對檔案操作
12.4 的支持 453
12.4.1 檔案的創建和打開 453
12.4.2 檔案的寫入 456
12.4.3 檔案的讀取 458
12.5 MFC對檔案操作的支持 459
12.5.1 檔案的寫入 460
12.5.2 檔案的讀取 461
12.5.3 CFileDialog類 461
12.6 Win.ini檔案的訪問 466
12.6.1 Win.ini檔案的結構 466
12.6.2 Win.ini檔案的寫入 467
12.6.3 Win.ini檔案的讀取 469
12.7 註冊表的編程 472
12.7.1 註冊表API 472
12.7.2 註冊表訪問示例 476
12.8 本章小結 480
第13章 文檔與串列化 481
13.1 使用CArchive類對檔案
13.1 進行讀寫操作 481
13.2 MFC框架程式提供的檔案
13.2 新建功能 484
13.2.1 IDR_MAINFRAME
13.2.1 字元串資源 485
13.2.2 OnNewDocument函式的
13.2.2 調用過程 489
13.3 文檔串列化 496
13.3.1 文檔類的Serialize函式 496
13.3.2 MFC框架對Serialize
13.3.2 函式的調用過程 498
13.4 可串列化的類 506
13.4.1 實現類對串列化的支持 506
13.4.2 利用可串列化類的Serialize
13.4.2 函式保存和載入對象 509
13.4.3 版本號 513
13.4.4 利用CObArray類對串列化
13.4.4 的支持保存和載入數據 514
13.5 文檔對象數據的銷毀 518
13.6 本章小結 521
第14章 網路編程 523
14.1 計算機網路基本知識 523
14.1.1 IP位址 524
14.1.2 協定 524
14.1.3 網路的狀況 524
14.1.4 網路異質性問題的解決 525
14.1.5 ISO/OSI七層參考模型 525
14.1.6 數據封裝 528
14.1.7 TCP/IP模型 528
14.1.8 連線埠 529
14.1.9 套接字(socket)的引入 529
14.1.10 網路位元組順序 530
14.1.11 客戶機/伺服器模式 530
14.2 Windows Sockets的實現 530
14.2.1 套接字的類型 531
14.2.2 基於TCP(面向連線)
14.2.2 的socket編程 531
14.2.3 基於UDP(面向無連線)
14.2.2 的socket編程 532
14.3 相關函式 532
14.3.1 WSAStartup函式 532
14.3.2 socket函式 534
14.3.3 bind函式 534
14.3.4 inet_addr和inet_ntoa函式 535
14.3.5 listen函式 535
14.3.6 accept函式 536
14.3.7 send函式 536
14.3.8 recv函式 536
14.3.9 connect 537
14.3.10 recvfrom 537
14.3.11 sendto函式 538
14.3.12 htons和htonl函式 538
14.4 基於TCP的網路應用程式
14.4 的編寫 538
14.4.1 伺服器端程式 538
14.4.2 客戶端程式 543
14.5 基於UDP的網路應用程式
14.5 的編寫 546
14.5.1 伺服器端程式 546
14.5.2 客戶端程式 548
14.6 基於UDP的簡單聊天程式 550
14.6.1 伺服器端程式 550
14.6.2 客戶端程式 553
14.7 本章小結 556
第15章 多執行緒 557
15.1 基本概念 557
15.1.1 進程 557
15.1.2 執行緒 560
15.2 執行緒創建函式 561
15.3 簡單多執行緒示例 563
15.4 執行緒同步 566
15.4.1 火車站售票系統模擬程式 566
15.4.2 多執行緒程式容易出現的問題 568
15.4.3 利用互斥對象實現執行緒同步 570
15.5 保證應用程式只有一個
15.5 實例運行 578
15.6 網路聊天室程式的實現 579
15.6.1 載入套接字型檔 580
15.6.2 創建並初始化套接字 581
15.6.3 實現接收端功能 582
15.6.4 實現傳送端功能 586
15.7 本章小結 589
第16章 執行緒同步與異步
第16章 套接字編程 590
16.1 事件對象 590
16.1.1 創建事件對象 590
16.1.2 設定事件對象狀態 591
16.1.3 重置事件對象狀態 591
16.1.4 利用事件對象實現執行緒同步 591
16.1.5 保證應用程式只有一個
16.1.5 實例運行 597
16.2 關鍵代碼段 598
16.2.1 相關的API函式 598
16.2.2 利用關鍵代碼段實現
16.2.2 執行緒同步 599
16.3 執行緒死鎖 602
16.4 互斥對象、事件對象與
16.4 關鍵代碼段的比較 605
16.5 基於訊息的異步套接字 606
16.5.1 相關函式說明 606
16.5.2 網路聊天室程式的實現 611
16.6 本章小結 621
第17章 進程間通信 622
17.1 剪貼簿 622
17.1.1 數據傳送 623
17.1.2 數據接收 627
17.2 匿名管道 629
17.2.1 基礎知識 629
17.2.2 進程的創建 630
17.2.3 父進程的實現 635
17.2.4 子進程的實現 639
17.3 命名管道 643
17.3.1 基礎知識 643
17.3.2 伺服器端程式 646
17.3.3 客戶端程式 651
17.4 郵槽 655
17.4.1 伺服器端程式 656
17.4.2 客戶端程式 657
17.5 本章小結 659
第18章 ActiveX控制項 660
18.1 ActiveX控制項 660
18.1.1 ActiveX控制項的好處 662
18.1.2 MFC ActiveX
18.1.2 ControlWizard 662
18.1.3 ActiveX控制項的測試 666
18.1.4 ActiveX控制項的註冊 668
18.1.5 時鐘控制項的實現 669
18.2 屬性 671
18.2.1 標準屬性 672
18.2.2 自定義屬性 677
18.3 方法 682
18.4 事件 684
18.4.1 標準事件 684
18.4.2 自定義事件 686
18.5 屬性的持久性 688
18.6 環境屬性 691
18.7 ActiveX控制項測試程式 693
18.8 本章小結 699
18.9 問題 699
第19章 動態程式庫 701
19.1 動態程式庫概述 701
19.1.1 靜態庫和動態庫 701
19.1.2 使用動態程式庫的好處 702
19.1.3 動態程式庫的載入 703
19.2 Win32 DLL的創建和使用 703
19.2.1 Dumpbin命令 704
19.2.2 從DLL中導出函式 705
19.3 隱式連結方式載入DLL 707
19.3.1 利用extern聲明
19.3.1 外部函式 707
19.3.2 Depends工具 710
19.3.3 利用_declspec(dllimport)
19.3.3 聲明外部函式 712
19.4 完善Win32 DLL例子 712
19.5 從DLL中導出C++類 714
19.6 解決名字改編問題 718
19.7 顯示載入方式載入DLL 723
19.7.1 LoadLibary函式 723
19.7.2 調用約定 725
19.7.3 根據序號訪問DLL中的
19.7.3 導出函式 728
19.8 DllMain函式 729
19.9 MFC DLL 730
19.10 本章小結 731
第20章 HOOK和資料庫訪問 732
20.1 HOOK編程 732
20.1.1 基本知識 732
20.1.2 進程內鉤子 734
20.1.3 全局鉤子 741
20.2 資料庫訪問技術 752
20.3 在VB中利用ADO訪問
20.3 資料庫 755
20.3.1 利用ADO控制項訪問
20.3.1 資料庫 755
20.3.2 利用ADO對象訪問
20.3.1 資料庫 758
20.4 在VC中利用ADO訪問
20.4 資料庫 762
20.5 本章小結 767

相關詞條

熱門詞條

聯絡我們