鳴謝
序言
第Ⅰ部分 Windows和MFC基礎
第1章 Hello,MFC
1.1 Windows編程模型
1.1.1 消息消息還是消息
1.1.2 Windows程序設計SDK風格
1.1.3 匈牙利標記法和Windows數據類型
1.1.4 SDK程序設計展望
1.2 MFC簡介
1.2.1 使用C++和MFC的好處
1.2.2 MFC的設計思想
1.2.3 文檔/視圖體係結構
1.2.4 MFC類的分層結構
1.2.5 AFX函數
1.3 您的第一個MFC應用程序
1.3.1 應用程序對象
1.3.2 MFC如何使用應用程序對象
1.3.3 框架窗口對象
1.3.4 繪製窗口
1.3.5 消息映射
1.3.6 消息映射的工作方式
1.3.7 Windows、字符集和_T宏
1.3.8 建立應用程序
1.3.9 小結
第2章 在窗口中繪圖
2.1 Windows GDI
2.1.1 MFC設備描述錶類
2.1.2 設備描述錶屬性
2.1.3 繪圖模式
2.1.4 映射模式
2.1.5 可編程映射模式
2.1.6 坐標轉換
2.1.7 移動原點
2.1.8 坐標係小結
2.1.9 獲取設備信息
2.2 用GDI繪圖
2.2.1 畫直綫和麯綫
2.2.2 圓橢圓、多邊形以及其他形狀
2.2.3 GDI畫筆和CPen類
2.2.4 GDI畫刷和CBrush類
2.2.5 畫文本
2.2.6 GDI字體和CFont類
2.2.7 光柵字體與TrueType字體
2.2.8 鏇轉文本
2.2.9 備用對象
2.2.10 刪除GDI對象
2.2.11 取消對GDI對象的選定
2.2.12 標尺應用程序
2.3 看看畫瞭些什麼
2.3.1 給窗口添加滾動條
2.3.2 設定滾動條的範圍、位置和頁麵大小
2.3.3 使滾動條滑塊大小和窗口尺寸同步變化
2.3.4 處理滾動條消息
2.3.5 滾動窗口
2.3.6 Accel應用程序
2.4 遺留問題
第3章 鼠標和鍵盤
3.1 從鼠標獲取輸入
3.1.1 客戶區鼠標消息
3.1.2 TicTac應用程序
3.1.3 非客戶區鼠標消息
3.1.4 WM_NCHITTEST消息
3.1.5 WM_MOUSELEAVE和WM_MOUSEHOVER消息
3.1.6 鼠標滾輪
3.1.7 捕獲鼠標
3.1.8 鼠標捕獲的應用
3.19 光標
3.1.10 沙漏形光標
3.1.11 鼠標雜錄
3.2 從鍵盤獲取輸入
3.2.1 輸入焦點
3.2.2 擊鍵消息
3.2.3 虛擬鍵代碼
3.2.4 Shift狀態及切換
3.2.5 字符消息
3.2.6 死鍵消息
3.2.7 插入符
3.3 VISUALKB應用程序
3.3.1 處理插入符
3.3.2 輸入及編輯文本
3.3.3 其他有趣內容
第4章 菜單
4.1 菜單基礎
4.1.1 創建菜單
4.1.2 加載並顯示菜單
4.1.3 響應菜單命令
4.1.4 命令範圍
4.1.5 更新菜單中的菜單項
4.1.6 更新範圍
4.1.7 鍵盤加速鍵
4.2 SHAPES應用程序
4.2.1 運行MFC AppWizard
4.2.2 分析AppWizard的輸齣
4.2.3 AppWizard之外的工作
4.2.4 過程小結
4.3 菜單魔術
4.3.1 通過手工編程創建菜單
4.3.2 通過手工編程修改菜單
4.3.3 係統菜單
4.3.4 自製菜單
4.3.5 層疊菜單
4.3.6 上下文菜單
4.4 COLORS應用程序
4.4.1 上下文菜單
4.4.2 試一試
第5章 MFC集閤類
5.1 數組
5.1.1 MFC數組類
5.1.2 動態調整數組大小
5.1.3 用CArray創建類型安全數組類
5.2 列錶
5.2.1 MFC列錶類
5.2.2 用Clist創建類型安全列錶類
5.3 映射錶
5.3.1 MFC映射錶類
5.3.2 映射錶工作方式
5.3.3 提高查找效率
5.3.4 用CMap創建類型安全映射錶類
5.4 類型指針類
第6章 文件I/O和串行化
6.1 CFile類
6.1.1 打開、關閉和創建文件
6.1.2 讀和寫
6.1.3 CFile派生類
6.1.4 枚舉文件和文件夾
6.2 串行化和CArchive類
6.2.1 串行化基礎
6.2.2 編寫可串行化類
6.2.3 給可串行化類分配版本號:可配置版本模式
6.2.4 串行化工作過程
6.2.5 串行化CObject
第7章 控件
7.1 傳統控件
7.1.1 CButton類
7.1.2 CListBoX類
7.1.3 CStatic類
7.1.4 FontView應用程序
7.1.5 CEdit類
7.1.6 趕快!即時記事本
7.1.7 CComboBox類
7.1.8 CScrollBar類
7.2 高級控件程序設計
7.2.1 數字編輯校件
7.2.2 自製列錶框
7.2.3 圖形按鈕
7.2.4 自定義控件的顔色
7.2.5 消息反射
第8章 對話框和屬性錶
8.1 模式對話框和CDialog類
8.1.1 對話框模闆
8.1.2 CDialog類
8.1.3 創建模式對話框
8.1.4 對話框數據交換和對話框數據校驗
8.1.5 與對話框中的控件相互作用
8.1.6 DlgDemol應用程序
8.2 無模式對話框
8.3 用對話框作為主窗口
8.4 屬性錶
8.5 公用對話框
8.5.1 修改公用對話框
8.5.2 Phones應用程序
第Ⅱ部分 文檔/視圖體係結構
第9章 文檔、視圖和單文檔界麵
9.1 文檔/視圖基礎知識
9.1.1 再看InitInstance函數
9.1.2 文檔對象
9.1.3 視圖對象
9.1.4 框架窗口對象
9.1.5 動態對象創建
9.1.6 有關SDI文檔模闆的其他內容
9.1.7 用操作係統命令解釋器注冊文檔類型
9.1.8 命令傳送
9.1.9 預定義的命令ID和命令處理程序
9.2 第一個文檔/視圖應用程序
9.2.1 SdiSquares應用程序
9.2.2 循序漸進地創建SdiSquares
9.3 文檔+視圖=較少的工作量
第10章 滾動視圖、HTML視圖以及其他視圖類型
10.1 滾動視圖
10.1.1 CScrollView基礎
10.1.2 CScrollView操作
10.1.3 優化滾動操作
10.1.4 ScrollDemo應用程序
10.1.5 普通視圖轉換為滾動視圖
10.2 HTML視圖
10.2.1 CHtmlView操作
10.2.2 CHtmlView可覆蓋函數
10.2.3 在基於CHtmlView的應用程序中使用DHTML
10.2.4 樹形視圖
10.2.5 初始化樹形視圖
10.2.6 樹形視圖的成員函數和通知
10.2.7 DriveTree應用程序
10.3 列錶視圖
10.3.1 初始化列錶視圖
10.3.2 修改錶現樣式
10.3.3 在列錶視圖中排序
10.3.4 列錶視圖中的命中測試
10.3.5 WinDir應用程序
10.4 自製控件視圖
第11章 多文檔和多視圖
11.1 MFC和多文檔界麵
11.1.1 同步文檔的多個視圖
11.1.2 MdiSquares應用程序
11.1.3 支持多個文檔類型
11.1.4 MDI之外的其他選擇
11.2 拆分窗口
11.2.1 動態拆分窗口
11.2.2 Sketch應用程序
11.2.3 靜態拆分窗口
11.2.4 Wanderer應用程序
11.2.5 自定義命令傳送
11.2.6 嵌套拆分窗口
11.2.7 帶有多種視圖類型的動態拆分窗口
第12章 工具欄、狀態欄和組閤欄
12.1 工具欄
12.1.1 創建和初始化工具欄
12.1.2 固定式和浮動式工具欄
12.1.3 控製工具欄的可見性
12.1.4 保持工具欄按鈕和應用程序同步
12.1.5 添加工具提示和狀態柱工具說明
12.1.6 在工具欄中添加非按鈕控件
12.1.7 更新非按鈕控件
12.1.8 使工具欄設置永久化
12.1.9 AppWizard提供的工具欄支持
12.2 狀態欄
12.2.1 創建和初始化狀態欄
12.2.2 為菜單項提供上下文相關幫助
12.2.3 創建自定義狀態欄窗格
12.2.4 AppWizard提供的狀態欄支持
12.3 總結:MYWORD應用程序
12.3.1 主工具欄
12.3.2 樣式欄
12.3.3 再談CRichEditView
12.4 組閤欄
第13章 打印和打印預覽
13.1 通過文檔和視圖打印
13.1.1 Windows打印體係結構
13.1.2 MFC打印體係結構
13.1.3 打印預覽
13.2 隻有打印功能的應用程序
13.2.1 黑白打印預覽
13.3 復雜的打印應用程序
13.3.1 串行化的唯一方法
13.4 打印技巧與訣竅
13.4.1 使用打印對話框中的選定範圍單選按鈕
13.4.2 不要假定——實踐齣真知!
13.4.3 添加默認分頁支持
13.4.4 枚舉打印機
第Ⅲ部分 高級篇
第14章 計時器和空閑處理
14.1 計時器
14.1.1 設置計時器:方法1
14.1.2 響應WM_TIMER消息
14.1.3 設置計時器:方法2
14.1.4 清除計時器
14.2 CLOCK應用程序
14.2.1 處理計時器消息
14.2.2 獲得當前時間:CTime類
14.2.3 使用MM_ISOTROPIC映射方式
14.2.4 隱藏和顯示標題欄
14.2.5 實現客戶區拖動
14.2.6 使用係統萊單作為上下文萊單
14.2.7 最頂層窗口
14.2.8 保留配置設置
14.2.9 控製窗口大小:WM_GETMINMAXINFO消息
14.3 空閑處理
14.3.1 使用Onldle
14.3.2 對比空閑處理和多綫程處理
第15章 位圖、調色闆以及區域
15.1 調色闆
15.1.1 Windows使用顔色的方式
15.1.2 邏輯調色闆和CPalette類
15.1.3 創建邏輯調色闆
15.1.4 實現邏輯調色闆
15.1.5 用調色闆顔色繪圖
15.1.6 WM_OUERYNEWPALETTE和WM_PALETTECHANGED消息
15.1.7 確定是否需要邏輯調色闆
15.1.8 PaletteDemo應用程序
15.1.9 調色闆動畫
15.1.10 ::SetSystemPaletteUse函數
15.2 位圖
15.2.1 DDB和CBitmap類
15.2.2 按位將位圖傳送到屏幕和其他設備
15.2.3 位圖資源
15.2.4 DIB和DIB分區
15.2.5 位塊傳送、光柵操作以及顔色映射
15.2.6 BitmapDemo應用程序
15.2.7 編寫BMP文件查看器
15.2.8 再論::LoadImage
15.3 區域
15.3.1 區域和CRgn類
15.3.2 RegionDemo應用程序
第16章 公用控件
16.1 公用控件基礎
16.1.1 創建公用控件
16.1.2 處理通知:WM_NOTIFY消息
16.2 滑杆、微調按鈕和工具提示控件
16.2.1 滑杆控件
16.2.2 微調按鈕控件
16.2.3 工具提示控件
16.2.4 GridDemo應用程序
16.3 圖像列錶和ComboBoxEx控件
16.3.1 圖像列錶
16.3.2 ComboBoxEx控件
16.3.3 PathList應用程序
16.4 進度控件和動畫控件
16.4.1 進度控件
16.4.2 動畫控件
16.5 IP地址控件和其他數據輸入控件
16.5.1 IP地址控件
16.5.2 熱鍵控件
16.5.3 月曆控件
16.5.4 日期-時間拾取控件
第17章 綫程和綫程同步化
17.1 綫程
17.1.1 創建工作者綫程
17.1.2 創建UI綫程
17.1.3 暫停和繼續執行綫程
17.1.4 使綫程睡眠
17.1.5 終止綫程
17.1.6 自動刪除CWinThread
17.1.7 結束另一個綫程
17.1.8 綫程、進程以及優先級彆
17.1.9 在多綫程應用程序中使用C運行時函數
17.1.10 跨綫程界限調用MFC成員函數
17.1.11 您的第一個多綫程應用程序
17.2 綫程同步
17.2.1 臨界區
17.2.2 互斥量
17.2.3 事件
17.2.4 信號量
17.2.5 CSingleLock和CMultibock類
17.2.6 編寫綫程安全類
17.2.7 ImageEdit應用程序
17.3 小知識點
17.3.1 消息泵
17.3.2 執行其他進程
17.3.3 文件改變通知
第Ⅳ部分 COM,OLE和ActiveX
第18章 MFC和組件對象模型
18.1 組件對象模型
18.1.1 實例化COM對象
18.1.2 對象生存期
18.1.3 獲得接口指針
18.1.4 COM服務器
18.1.5 定位透明度
18.1.6 對象鏈接和嵌入
18.1.7 Active Documents
18.1.8 ActiveX
18.2 MFC和COM
18.2.1 多重繼承
18.2.2 嵌套類
18.2.3 MFC和嵌套類
18.2.4 MFC實現IUnknown的方法
18.2.5 接口映射
18.2.6 MFC和聚閤
18.2.7 MFC和類廠
18.2.8 總結
第19章 剪貼闆和OLE施放
19.1 傳統剪貼闆
19.1.1 剪貼闆格式
19.1.2 私有剪貼闆格式
19.1.3 以多種格式提供數據
19.1.4 查詢有效數據格式
19.1.5 延時再現
19.1.6 創建可重用剪貼闆類
19.2 OLE剪貼闆
19.2.1 OLE剪貼闆基礎
19.2.2 MFC、全局內存和OLE剪貼闆
19.2.3 使用其他存儲媒體
19.2.4 將OLE剪貼闆看作CFile
19.2.5 多種格式和多種存儲媒體
19.2.6 檢查數據有效性
19.2.7 用COleDataSource進行延時再現
19.2.8 COleDataSource和COleDataObject復習
19.3 OLE拖放
19.3.1 拖放來源剖析
19.3.2 拖放目標剖析
19.3.3 MFC對OLE拖放的支持
19.3.4 拖放目標滾動
19.4 綜閤應用:WIDGET應用程序
19.4.1 AfxOleInit函數
第20章 Automation
20.1 Automation基礎
20.1.1 IDispatch:所有Automation的基礎
20.1.2 Automation數據類型
20.1.3 滯後綁定與超前綁定的對比
20.1.4 雙接口
20.1.5 類型庫
20.2 MFC Automation服務器
20.2.1 MFC、IDispatch和調度映射
20.2.2 編寫Automation服務器
20.2.3 添加Automation方法
20.2.4 添加Automation屬性
20.2.5 簡單的Automation服務器
20.2.6 Automation的分層結構
20.2.7 更復雜的Automation服務器
20.3 MFC Automation客戶
20.3.1 PieClient應用程序
20.3.2 連接到運行著的Automation服務器
第21章 ActiveX控件
21.1 ActiveX控件基礎
21.1.1 方法、屬性和事件
21.1.2 自定義型和備用型
21.1.3 環境屬性
21.1.4 控件狀態
21.1.5 ActiveX控件體係結構
21.1.6 ActiveX控件容器
21.1.7 MFC對ActiveX控件的支持
21.2 創建ActiveX控件
21.2.1 運行ControlWizard
21.2.2 實現OnDraw
21.2.3 使用環境屬性
21.2.4 添加方法
21.2.5 添加屬性
21.2.6 使屬性成為持久屬性
21.2.7 自定義控件的屬性錶
21.2.8 給控件屬性錶添加頁
21.2.9 添加事件
21.2.10 事件映射錶
21.2.11 創建一個ActiveX控件
21.2.12 測試及調試ActiveX控件
21.2.13 注冊ActiveX控件
21.3 在MFC應用程序中使用ActiveX控件
21.3.1 調用ActiveX控件的方法
21.3.2 處理事件
21.3.3 CalUser應用程序
21.3.4 在非對話框窗口中使用ActiveX控件
21.3.5 在Web網頁中使用ActiveX控件
21.4 高級論題
21.4.1 無窗口控件
21.4.2 控件子類化
21.4.3 控件許可
· · · · · · (
收起)