MFC Windows 程序設計, 2/e

MFC Windows 程序設計, 2/e

作者: 帕羅賽斯
出版社: 清華大學
出版在: 2007-05-01
ISBN-13: 9787302150428
ISBN-10: 7302150427
裝訂格式: 平裝
總頁數: 658 頁





內容描述


《MFC Windows程序設計》(第2版)(修訂版)不僅擴展了已被認為是權威的關於Microsoft用於Windows API的功能強大的C++類庫的闡述,還新增了有關COM、OLE和ActiveX的內容。《MFC Windows程序設計》(第2版)(修訂版)的作者,Jeff Prosise,用其無與倫比的技巧向讀者講述了MFC程序設計中的基本概念和主要技術再次闡釋了在32位Windows平臺上進行了快速的面向對象開發的完美方法。《MFC Windows程序設計》(第2版)(修訂版)涵蓋了以下專題:事件驅動程序設計和MPC的基礎知識文檔/視圖體系結構位圖、調色板和區域多線程和線程同步MFC與組件對象模型(COM)ActiveX控件


目錄大綱


鳴謝
序言
第Ⅰ部分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 M FC和類廠
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控件許可


作者介紹


作者:(美)帕羅賽斯
Jeff Prosise是一位作者、教員和講師,他以Windows編程和教授別人如何進行Windows為生。作為一位在Windows程序設計、MFC和COM領域世界知名的權威,他還是《PC Magazinge》和《Microsoft Systems Journal》雜誌的組稿編輯。




相關書籍

從零開始學ASP.NET

作者 明日科技

2007-05-01

Modern Java Recipes: Simple Solutions to Difficult Problems in Java 8 and 9

作者 Ken Kousen

2007-05-01

Spring Boot 應用開發實戰

作者 饒仕琪

2007-05-01