本書通過85個實例全面講述了應用MFC進行Visual C++編程的思想。每個實例均以編寫一個應用程序要走的步驟編寫。全書共分四部分進行介紹,第一部分是基礎知識,第二部分講述用戶界面的實例,第三部分講述MFC內部處理方面的實例,第四部分講述打包實例。全書基本上面向實例進行闡述,講解透徹、易于掌握。本書既可作為初學者和大專院校師生的自學參考書,也可作為計算機軟件開發人員的技術參考書。 目 錄
- 譯者序
- 前言
- 第一部分 基礎知識
- 第1章 窗口
- 1.1 窗口和API環境
- 1.1.1 三種類型窗口
- 1.1.2 客戶區和非客戶區
- 1.2 窗口和MFC環境
- 1.3 怎樣應用MFC創建一個窗口
- 1.4 怎樣使用MFC銷毀一個窗口
- 1.4.1 捆綁到一個已有的窗口
- 1.4.2 窗口類
- 1.4.3 窗口進程
- 1.5 怎樣使用MFC創建一個窗口類
- 1.5.1 使用AfxRegisterWndClass ()
- 函數注冊一個窗口類
- 1.5.2 使用AfxRegisterClass ()函數
- 創建一個窗口類
- 1.6 怎樣銷毀一個MFC窗口類
- 1.7 廠商安裝的窗口類
- 1.8 其他類型窗口
- 1.9 桌面窗口
- 1.10 小結
- 第2章 類
- 2.1 基類
- 2.1.1 CObject
- 2.1.2 CCmdTarget
- 2.1.3 CWnd
- 2.2 應用程序、框架、文檔和視圖類
- 2.2.1 CWinApp(O/C/W)
- 2.2.2 CView (O/C/W)
- 2.3 其他用戶界面類
- 2.3.1 通用控件類
- 2.3.2 菜單類
- 2.3.3 對話框類
- 2.3.4 控制條類
- 2.3.5 屬性類
- 2.4 繪圖類
- 2.4.1 設備環境類
- 2.4.2 圖形對象類
- 2.5 文件類
- 2.6 數據庫類
- 2.6.1 ODBC類
- 2.6.2 DAO類
- 2.7 數據集類
- 2.8 其他數據類
- 2.9 通信類
- 2.10 其他類
- 2.11 小結
- 第3章 消息處理
- 3.1 發送或寄送一個消息
- 3.1.1 發送一個消息
- 3.1.2 寄送一個消息
- 3.1.3 發送一個消息與寄送一個消息
- 的比較
- 3.2 怎樣使用MFC發送一個消息
- 3.3 怎樣用MFC寄送一個消息
- 3.4 三種類型的消息
- 3.4.1 窗口消息
- 3.4.2 命令消息
- 3.4.3 控件通知
- 3.5 MFC怎樣接收一個寄送的消息
- 3.6 MFC怎樣處理一個接收到的消息
- 3.7 處理用戶界面的對象
- 3.8 創建自定義窗口消息
- 3.8.1 靜態分配的窗口消息
- 3.8.2 動態分配的窗口消息
- 3.9 重定向消息
- 3.9.1 子分類和超分類
- 3.9.2 用MFC子分類窗口
- 3.9.3 重載OnCmdMsg ( )
- 3.9.4 使用SetWindowsHookEx ( )
- 3.9.5 使用SetCapture ( )
- 3.9.6 專有的消息泵
- 3.10 小結
- 第4章 繪圖
- 4.1 設備環境
- 4.2 在MFC環境中創建一個設備環境
- 4.2.1 屏幕
- 4.2.2 打印機
- 4.2.3 內存
- 4.2.4 信息
- 4.3 繪圖例程
- 4.3.1 畫點
- 4.3.2 畫線
- 4.3.3 畫形狀
- 4.3.4 形狀填充和翻轉
- 4.3.5 滾動
- 4.3.6 繪制文本
- 4.3.7 繪制位圖和圖標
- 4.4 繪圖屬性
- 4.4.1 設備環境屬性
- 4.4.2 畫線屬性
- 4.4.3 形狀填充屬性
- 4.4.4 文本繪制屬性
- 4.4.5 映像模式
- 4.4.6 調色板屬性
- 4.4.7 混合屬性
- 4.4.8 剪裁屬性
- 4.4.9 位圖繪制屬性
- 4.5 元文件和路徑
- 4.5.1 元文件
- 4.5.2 路徑
- 4.6 顏色和調色板
- 4.6.1 抖動色
- 4.6.2 未經抖動色
- 4.6.3 系統調色板
- 4.6.4 使用系統調色板
- 4.6.5 動畫色
- 4.7 控制什么時候在哪里繪圖
- 4.7.1 處理WM_PAINT
- 4.7.2 只繪制被無效化的區域
- 4.7.3 處理WM_DRAWITEM
- 4.7.4 在其他時間繪圖
- 4.8 小結
- 第二部分 用戶界面實例
- 第5章 應用程序與環境
- 5.1 例1 規劃MFC應用程序
- 5.2 例2 用AppWizard創建一個MFC
- 應用程序
- 5.3 例3 用ClassWizard創建一個類
- 5.4 例4 初始化應用程序屏幕
- 5.5 例5 保存應用程序屏幕
- 5.6 例6 處理命令行選項
- 5.7 例7 動態改變應用程序圖標
- 5.8 例8 提示用戶優先選項
- 5.9 例9 保存和恢復用戶優先選項
- 5.10 例10 終止應用程序
- 5.11 例11 創建一個啟動窗口
- 第6章 菜單
- 6.1 例12 使用菜單編輯器
- 6.2 例13 添加一個菜單命令處理函數
- 6.3 例14 根據當前可視文檔動態改
- 變菜單
- 6.4 例15 啟用和禁用菜單命令
- 6.5 例16 復選標記菜單命令
- 6.6 例17 單選標記菜單命令
- 6.7 例18 動態修改菜單
- 6.8 例19 動態修改系統菜單
- 6.9 例20 觸發一個菜單命令
- 6.10 例21 創建彈出式菜單
- 第7章 工具欄和狀態欄
- 7.1 例22 使用工具欄編輯器
- 7.2 例23 啟用和禁用工具欄按鈕
- 7.3 例24 為工具欄按鈕添加字
- 7.4 例25 非標準工具欄大小
- 7.5 例26 保持工具欄按鈕按下
- 7.6 例27 保持工具欄按鈕組中
- 一個按鈕按下
- 7.7 例28 為工具欄添加非按鈕控件
- 7.8 例29 修改應用程序的狀態欄
- 7.9 例30 更新狀態欄窗格
- 7.10 例31 為狀態欄添加其他控件
- 第8章 視圖
- 8.1 例32 滾動視圖
- 8.2 例33 改變鼠標光標形狀
- 8.3 例34 沙漏光標
- 8.4 例35 窗體視圖
- 8.5 例36 列表視圖
- 8.6 例37 動態分割一個視圖
- 第9章 對話框和對話條
- 9.1 例38 使用對話框編輯器
- 9.2 例39 創建一個對話框類
- 9.3 例40 模式對話框
- 9.4 例41 無模式對話框
- 9.5 例42 在無模式對話框的控件間
- 切換焦點
- 9.6 例43 對話框中的動畫
- 9.7 例44 消息框
- 9.8 例45 對話條
- 第10章 控件窗口
- 10.1 例46 在任意位置創建一個控
- 件窗口
- 10.2 例47 用子分類定制一個通用
- 控件窗口
- 10.3 例48 用超分類定制一個通用
- 控件窗口
- 10.4 例49 在按鈕上放置位圖
- 10.5 例50 動態填充一個組合框
- 10.6 例51 排序一個列表控件
- 10.7 例52 分隔線控件
- 第11章 繪圖
- 11.1 例53 繪制圖形
- 11.2 例54 繪制文本
- 11.3 例55 從任意位置裝入一個圖
- 標并繪制
- 11.4 例56 從任意位置裝入一個位
- 圖和繪制一個位圖
- 11.5 例57 從文件中創建一個位圖
- 11.6 例58 創建一個自繪位圖
- 第三部分 內部處理實例
- 第12章 消息
- 12.1 例59 添加消息處理函數或重
- 載MFC類
- 12.2 例60 添加命令范圍消息處理函數
- 12.3 例61 重定向命令消息
- 12.4 例62 創建自己的窗口消息
- 第13章 文件、串行化和數據庫
- 13.1 例63 訪問二進制文件
- 13.2 例64 訪問標準I/O文件
- 13.3 例65 訪問內存文件
- 13.4 例66 在數據類中實現串行化
- 13.5 例67 串行化SDI或MDI文檔
- 13.6 例68 按要求串行化
- 13.7 例69 透明地更新串行化的文檔
- 13.8 例70 串行化多態類
- 13.9 例71 串行化數據集
- 13.10 例72 訪問ODBC數據庫
- 13.11 例73 訪問DAO數據庫
- 第14章 雜類
- 14.1 例74 剪切、拷貝和粘貼文本
- 數據
- 14.2 例75 剪切、拷貝、粘貼多信
- 息文本數據
- 14.3 例76 剪切、拷貝和粘貼二進制
- 數據
- 14.4 例77 數組函數
- 14.5 例78 列表函數
- 14.6 例79 映像函數
- 14.7 例80 系統鍵盤輸入
- 14.8 例81 時間
- 第四部分 打包實例
- 第15章 庫
- 15.1 例82 靜態鏈接C/C++庫
- 15.2 例83 動態鏈接C/C++庫
- 15.3 例84 動態鏈接MFC擴展類庫
- 15.4 例85 資源庫
- 第五部分 附錄
- 附錄A 控件窗口風格
- 附錄B 消息、控件通知和消息映像宏
- 附錄C 訪問其他應用程序類
- 附錄D 開發中注意事項