目錄
VisualC++高級編程技術——開發實例剖析
第1章 VisualC++編程時必須或輔助使用的幾個開發工具
1、1使用MFCAppWizard
1、1、1MFCAppWizard的啟動
1、1、2利用AppWizard生成一個基於MFC的應用程式
1、2使用ClassView
1、2、1啟動ClassView
1、2、2編輯定位
1、2、3增加類
1、2、4增加類的成員
1、3使用ResourceView
1、3、1ResourceView的調用
1、3、2ResourceView工作分析
1、4使用FileView
1、4、1打開一個工作項目
1、4、2FileView相關的操作功能
1、5使用ClassWizard
1、5、1Windows訊息
1、5、2訊息處理函式
1、5、3ClassWizard的作用和啟動
1、5、4ClassWizard管理訊息處理函式
1、5、5ClassWizard管理可重載的虛函式
1、5、6ClassWizard管理映射變數
1、5、7管理Automation和ActiveX事件
1、5、8重新構造一個開發項目的ClassWizard工作信息
1、6使用各設計工具的幾點建議
第2章 基於MFC的一般應用程式框架分析
2、1程式類和檔案
2、2程式框架中各個類的作用分析
2、3程式的工作步驟分析
2、4系統產生的標準選單執行分析
2、4、1標準選單的執行分析
2、4、2修改標準選單完成的功能
2、5程式框架中各個類對象的相互調用關係
2、6包含詳盡注釋的主要源程式清單
第3章 與圖形操作有關的類及主要操作
3、1繪圖類
3、1、1繪圖類簡介
3、1、2幾個繪圖類的主要差別
3、1、3繪圖類的引用方法
3、2繪圖對象類
3、2、1CGdiObject類
3、2、2CPen類
3、2、3CBrush類
3、2、4CFont類
3、2、5CRgn類
3、2、6CPalette類
3、2、7CBitmap類
3、3繪圖類的主要操作功能
3、3、1坐標映像方式
3、3、2選用繪圖類對象
3、3、3主要繪圖屬性設定函式
第4章 面向對象的程式設計和C++類組織
4、1面向對象程式設計和C++類的基礎知識
4、1、1面向對象程式設計的初步知識
4、1、2類和對象
4、1、3函式重載
4、1、4類的構造函式和析構函式
4、1、5類的繼承
4、1、6虛函式和多態性
4、2分析建立一個基本矢量圖形系統Draw的基本類
4、2、1建立一個圖形基本類
4、2、2通過繼承建立直線類
4、2、3通過繼承建立連續直線或封閉多邊形類
4、2、4通過繼承建立圓類
4、2、5通過多級繼承建立圓弧類
4、2、6通過繼承建立標註文本類
4、2、7建立圖形參數類
4、3基本矢量圖形系統類的組織和實現列表
第5章 實現文檔和視圖
5、1組織矢量圖形系統Draw的文檔
5、1、1組織面向對象的文檔存儲管理機制
5、1、2利用MFC模板定義管理圖形元素對象指針的對象
5、1、3實現Draw系統的文檔
5、1、4實現Draw系統文檔的管理功能
5、2實現矢量圖形系統Draw的視圖
5、2、1為Draw系統建立一個適合各種映像方式的坐標系
5、2、2實現各圖形元素類的繪製函式
5、2、3視圖類的OnDraw函式
5、2、4實現視圖
第6章 使用滑鼠器互動作圖
6、1用滑鼠器作圖要解決的主要問題
6、1、1建立滑鼠訊息處理函式捕捉滑鼠器訊息
6、1、2捕捉所有的滑鼠輸入
6、1、3實現在螢幕上拖動圖形
6、1、4保存圖形數據到文檔
6、1、5將圖形以實際的形態重畫
6、2加入一個繪圖選單
6、2、1增加繪圖選單資源
6、2、2增加選單的訊息處理函式
6、3實現各圖形元素的互動繪製功能
6、3、1繪製直線
6、3、2繪製連續直線和多邊形區域
6、3、3繪製圓和圓形區域
6、3、4繪製圓弧
第7章 使用對話框
7、1對話框程式設計概況
7、1、1對話框程式的組成
7、1、2對話框的類型
7、2對話框編程的主要技術
7、2、1創建對話框資源
7、2、2創建對話框類
7、2、3對話框類中的常用函式
7、2、4對話框類對象的定義和使用
7、2、5控制無模式對話框
7、2、6對話框中使用各種控制
7、2、7對話框中的訊息操作
7、3用無模式對話框完成Draw系統的互動文本標註
7、3、1互動標註文本的操作過程
7、3、2定義對話框資源
7、3、3實現對話框類
7、3、4修改視圖類實現文本互動標註
7、4用模式對話框實現Draw系統中字型參數的設定
7、4、1建立對話框資源
7、4、2實現對話框類
第8章 增強視圖的操作功能
8、1增加一個圖形操作選單
8、1、1增加選單資源
8、1、2增加訊息處理函式
8、2圖形重畫
8、2、1全螢幕重畫
8、2、2局部重畫
8、3圖形放大和移動
8、3、1圖形放大或移動後圖形參數的計算方法
8、3、2圖形放大和移動的實現方法
8、4重畫上屏和重畫首屏
8、5顯示全圖
8、5、1操作目的和實現思路
8、5、2各種圖形元素的矩形邊界
8、5、3實現重畫全圖功能
8、6提高圖形重畫速度的基本方法
8、6、1基本原理及方法
8、6、2提高圖形重畫速度的實現方法
8、6、3修改圖形元素的繪製函式
8、7實現滾動視圖
8、7、1實現滾動視圖的方法
8、7、2必要的參數設定
8、8為Draw系統定製自身的圖形滾動功能
8、8、1確定滾動步長
8、8、2產生一個滾動條
8、8、3實現滾動功能
8、8、4加快圖形滾動的速度
8、8、5用鍵盤滾動圖形
第9章 文檔的刪除和恢復
9、1用滑鼠在螢幕上選中圖形元素
9、1、1各種圖形元素的選中區域
9、1、2各種圖形元素的選中判斷
9、1、3選中圖形的特殊顯示
9、1、4實現圖形選中功能
9、1、5放棄選中的圖形元素
9、1、6圖形元素顯示和選中的順序
9、2圖形元素的刪除
9、2、1實現可恢復的圖形元素刪除方法
9、2、2即時從螢幕上刪除圖形
9、2、3各種圖形元素的刪除實現
9、2、4實現圖形元素刪除功能
9、3實現Draw系統文檔操作逆向化
9、3、1逆向操作的含義
9、3、2記錄文檔操作過程
9、3、3實現文檔逆向操作
9、3、4實現操作過程的完全逆向化
第10章 文檔的存儲和讀取
10、1利用CFile對象存儲和讀取檔案
10、1、1構造和刪除一個CFile對象
10、1、2CFile類的主要操作
10、1、3CFile的派生類
10、2利用串列化存取文檔
10、2、1CArchive類及CArchive對象的構造
10、2、2Serialize函式
10、2、3CObArray類的serialize函式
10、3用串列化實現Draw系統的文檔存儲和讀取功能
10、3、1實現各個圖形元素類的串列化
10、3、2MFC框架程式的文檔串列化機制
10、3、3實現文檔的存儲和讀取
10、3、4SetModifiedFlag函式
10、4用CFile對象實現Draw系統文檔的存儲和讀取
10、4、1在各個圖形類中增加一個存取數據成員的函式
10、4、2實現文檔的存儲和讀取
第11章 使用剪裁板
11、1剪裁板使用方法
11、1、1打開、關閉、清空剪裁板
11、1、2存取剪裁板
11、1、3註冊和檢查剪裁板格式
11、2用剪裁板實現Draw系統剪裁和貼上圖像的功能
11、2、1增加操作選單
11、2、2剪裁視圖到剪裁板
11、2、3插入剪裁板的點陣圖到當前視圖
11、3用剪裁板實現Draw系統中矢量圖形元素的剪裁、移動和複製
11、3、1實現各圖形元素數據的字元串表示
11、3、2將要剪裁的圖形元素數據寫入剪裁板
11、3、3從剪裁板中讀出數據成員形成圖形元素對象
11、3、4實現Draw系統的Cut、Copy和Paste操作功能
第12章 多視圖、多文檔編程
12、1單文檔和多文檔應用程式比較
12、1、1用MFCAppWizard產生程式框架比較
12、1、2程式框架類比較
12、1、3標準選單比較
12、2單文檔應用程式分析
12、2、1建立文檔模板對象
12、2、2打開文檔操作
12、2、3關閉文檔操作
12、2、4保存文檔操作
12、3多文檔應用程式分析
12、3、1建立文檔模板對象
12、3、2打開文檔
12、3、3關閉和保存文檔
12、3、4創建視圖
12、4多文檔、多視圖編程注意事項
12、4、1全局變數的使用
12、4、2共享資源的使用
12、4、3多文檔、多視圖應用程式文檔和視圖類數據成員的組織
第13章 多執行緒編程
13、1管理執行緒的技術
13、1、1設定開發環境參數
13、1、2啟動及終止執行緒
13、1、3管理執行緒
13、2執行緒中使用MFC類對象
13、2、1執行緒中共享數據及對象
13、2、2執行緒中使用主執行緒的視圖類和文檔類對象
13、2、3使用CDC類對象
13、2、4使用CGdiObject類對象
13、3執行緒的同步化方法
13、3、1執行緒同步化概念
13、3、2使用互斥信號燈同步化執行緒
13、3、3其他同步化方法
13、3、4其他同步化類型
13、4實現Draw系統的圖形後台繪製
13、4、1實現一個圖形繪製執行緒
13、4、2實現同步化
第14章 圖形列印和列印預顯
14、1視圖列印實現過程分析
14、1、1視圖列印的機理
14、1、2視圖列印過程分析
14、2實現Draw系統的多坐標系無級列印和列印預顯功能
14、2、1進行分頁
14、2、2列印標題、註腳等其他信息
14、2、3任意比例分頁列印的具體實現
14、2、4列印預顯
第15章 顯示點陣圖
15、1點陣圖檔案的格式
15、2CBitmap類及CBitmap類對象的初始化方法
15、2、1CBitmap類簡介
15、2、2初始化CBitmap類對象的方法
15、3顯示點陣圖的步驟和主要的位操作函式
15、3、1顯示點陣圖的步驟
15、3、2位操作函式
15、4顯示點陣圖的函式實現
15、4、1顯示裝載在資源檔案中的點陣圖
15、4、2通過HBITMAP句柄裝載顯示點陣圖檔案
15、4、3用畫點法選擇裝入點陣圖數據顯示點陣圖
第16章 使用工具條、狀態條、對話條及加速鍵
16、1使用工具條
16、1、1工具條的實現過程
16、1、2為Draw系統創建一個繪圖工具條
16、2使用狀態條
16、2、1狀態條的實現過程
16、2、2為Draw系統在狀態條中增加坐標跟蹤提示
16、3使用對話條
16、3、1對話條的實現過程
16、3、2在Draw系統中實現設定繪圖參數的對話條
16、4加速鍵等的實現方法
16、4、1使用CCmdUI訊息處理函式
16、4、2修改命令互動對象的命令描述
16、4、3設定加速鍵
第17章 使用和開發DLL
17、1DLL的使用
17、1、1DLL的特點
17、1、2Windows中的DLL
17、1、3MFC庫中的DLL
17、1、4DLL的檔案組成
17、1、5使用DLL的方法
17、2VC++5.0能夠開發的基於MFC的DLL種類
17、2、1通常形式的靜態使用MFC的DLL
17、2、2通常形式的動態使用MFC的DLL
17、2、3擴展DLL
17、3調整開發平台設定來開發和調試DLL
17、3、1管理多個程式項目
17、3、2調整DLL開發項目和使用DLL項目的路徑設定
17、4在Draw系統中開發和使用DLL
17、4、1利用通常形式的靜態DLL實現標註字型設定對話框
17、4、2利用通常形式的動態DLL實現標註字型設定對話框
17、4、3利用擴展DLL實現標註字型設定對話框
第18章 OLE編程
18、1OLE使用技術
18、1、1OLE主要術語
18、1、2OLE伺服器應用程式調用的方式和實現
18、1、3MFC中的主要OLE類
18、1、4MFCAppWizard創建的OLE程式框架
18、2OLE包容器應用程式設計
18、2、1程式框架組成
18、2、2OLE條目的文檔組織
18、2、3增加和刪除OLE條目
18、2、4OLE條目繪製過程
18、2、5OLE條目的選中和拖動
18、2、6OLE條目的可視原位編輯
18、2、7OLE條目的存取
18、3在Draw系統中實現OLE包容器功能
18、3、1給OLE條目類增加數據成員
18、3、2繪製OLE條目
18、3、3增加OLE條目
18、3、4OLE條目的選中和拖動
18、3、5對OLE條目進行清除選中和刪除操作
18、3、6編輯OLE條目
18、3、7保存OLE條目
18、4OLE伺服器程式開發技術分析
18、4、1程式類分析
18、4、2互動操作界面分析
18、4、3視圖分析
18、4、4文檔分析
18、5開發OLE混合應用程式
18、5、1程式類分析
18、5、2互動操作界面分析
18、5、3文檔組織分析
18、6Automation支持
18、6、1術語
18、6、2Automation方法的定義和使用
18、6、3Automation屬性的定義和使用
18、6、4OLE自動化包容器獲得OLE自動化伺服器接口的方法
第19章 ActiveX控制項的開發及使用
19、1ActiveX控制項特點、構成及開發技術分析
19、1、1ActiveX控制項的特點
19、1、2用MFCAppWizard產生ActiveX控制項開發程式框架
19、1、3ActiveX控制項的主要開發工作
19、2開發ActiveX控制項的Automation屬性和方法
19、2、1開發Automation屬性和方法的程式框架
19、2、2增加一個庫存屬性
19、2、3增加其他Automation屬性和方法
19、3開發ActiveX控制項的事件
19、3、1開發事件的程式框架
19、3、2增加庫存事件
19、3、3增加和激發定製事件
19、4開發ActiveX控制項的屬性頁
19、4、1屬性頁開發的程式框架
19、4、2屬性頁的開發
19、5開發一個直線ActiveX控制項實例
19、5、1給控制項增加Automation屬性
19、5、2給控制項增加Automation方法
19、5、3給控制項增加事件
19、5、4完成控制項的繪製
19、5、5激發事件
19、5、6完成控制項的屬性頁開發
19、5、7ActiveX控制項的編譯及註冊
19、6ActiveX控制項的測試和使用
19、6、1使用VC++提供的測試容器程式
19、6、2在對話框中使用ActiveX控制項
第20章 實現系統的幫助功能
20、1開發幫助功能的程式框架
20、1、1MFC應用程式中幫助功能的程式代碼組成
20、1、2MFC應用程式的標準幫助功能及其實現
20、2求助主題組織
20、2、1組織求助主題的普通顯示內容
20、2、2組織求助主題的標識
20、2、3組織求助主題中的跳轉
20、2、4使用Word編輯RTF檔案可能出現的問題
20、3組織幫助項目檔案prj
20、3、1求助項目檔案中常用的節
20、3、2其他一些在HPJ檔案中使用的節
20、4實現Draw系統的幫助功能
20、4、1創建每個選單項的求助主題頁
20、4、2創建選單的求助目錄主題頁並與幫助檔案的主目錄主題連線
20、4、3測試新增幫助功能
第21章 矢量圖形系統Draw的原始碼列表
21、1Draw系統的主要功能
21、2Draw系統的原始碼檔案列表
21、2、1Draw系統開發過程中增加或做過修改的檔案
21、2、2drawdoc.h和drawdoc.cpp檔案列表
21、2、3視圖類的drawview.h和drawview.cpp檔案
21、2、4主框架類的mainfrm.h和mainfrm.cpp檔案
21、2、5OLE條目控制類的ctrlitem.h和ctrlitem.cpp檔案
21、2、6對話框類的textwritedlg.h和textwritedlg.cpp檔案
附錄A本書所附光碟的內容及技術支持
附錄B參考書目