logo资料库

深入浅出MFC,pdf格式.pdf

第1页 / 共1021页
第2页 / 共1021页
第3页 / 共1021页
第4页 / 共1021页
第5页 / 共1021页
第6页 / 共1021页
第7页 / 共1021页
第8页 / 共1021页
资料共1021页,剩余部分请下载后查看
第一部分
電子書開放自由下載 聲明
封面
山高月小 水落石出
扉頁
讀者來函
第二版序
第一版序
目錄
第0章 你一定要知道(導讀)
這本書適合誰
你需要什麼技術基礎
你需要什麼軟硬體環境
讓我們使用同一種語言
本書符號習慣
磁片內容與安裝
範例程式說明
與前版本之差異
如何聯絡作者
第一篇 勿在浮砂築高臺
第1章 Win32 程式基本觀念
Win32 程式開發流程
需要什麼函式庫(.LIB)
需要什麼表頭檔(.H)
以訊息為基礎,以事件驅動之
一個具體而微的 Win32 程式
程式進入點 WinMain
視窗類別之註冊與視窗之誕生
訊息迴路
視窗的生命中樞 - 視窗函式
訊息映射(Message Map)雛形
對話盒的運作
模組定義檔(.DEF)
資源描述檔(.RC)
Windows 程式的生與死
閒置時間的處理:OnIdle
Console 程式
Console程式與DOS程式的差別
Console程式的編譯聯結
JBACKUP:Win32 Console程式設計
MFCCON:MFC Console 程式設計
什麼是 C Runtime Library 的多緒版本
行程與執行緒(Process and Thread)
核心物件
一個行程的誕生與死亡
產生子行程
一個執行緒的誕生與死亡
以 _beginthreadex 取代CreateThread
執行緒優先權(Priority)
多緒程式設計實例
第2章 C++ 的重要性質
類別及其成員 - 談封裝(encapsulation)
基礎類別與衍生類別 - 談繼承(Inheritance)
this 指標
虛擬函式與多型(Polymorphism)
類別與物件大解剖
Object slicing 與虛擬函式
靜態成員(變數與函式)
C++ 程式的生與死:兼談建構式與解構式
四種不同的物件生存方式
所謂 "Unwinding"
執行時期型別資訊(RTTI)
動態生成(Dynamic Creation)
異常處理(Exception Handling)
Template
第3章 MFC 六大關鍵技術之模擬
MFC 類別階層
Frame1 範例程式
MFC 程式的初始化過程
Frame2 範例程式
RTTI(執行時期型別辨識)
CRuntimeClass 與類別型錄網
DECLARE_DYNAMIC / IMPLEMENT_DYNAMIC 巨集
Frame3 範例程式
IsKindOf(型別辨識)
Frame4 範例程式
Dynamic Creation(動態生成)
DECLARE_DYNCREATE / IMPLEMENT_DYNCREATE 巨集
Frame6 範例程式
Persistence(永續生存)機制
Serialize(資料讀寫)
DECLARE_SERIAL/IMPLEMENT_SERIAL 巨集
沒有範例程式
Message Mapping(訊息映射)
Frame7 範例程式
Command Routing(命令繞行)
Frame8 範例程式
本章回顧
第二部分
電子書開放自由下載 聲明
第二篇 欲善工事先利其器- Visual C++ 5.0 開發工具
第4章 Visual C++ - 整合性軟體開發環境
安裝與組成
MFC tech. notes
四個重要的工具
內務府總管:Visual C++ 整合開發環境
關於project
關於工具設定
Source Browser
Online Help
除錯工具
VC++ 除錯器
Exception Handling
程式碼產生器 - AppWizard
東圈西點完成MFC 程式骨幹
Scribble Step0
威力強大的資源編輯器
Icon編輯器
Cursor編輯器
Bitmap編輯器
ToolBar編輯器
VERSIONINFO 資源編輯器
String Table編輯器
Menu 編輯器
Accelerator 編輯器
Dialog 編輯器
Console程式的專案管理
第三部分
電子書開放自由下載 聲明
第三篇 淺出 MFC 程式設計
第5章 總觀 Application Framework
什麼是 Application Framework
侯捷怎麼說
我怎麼說
別人怎麼說
為什麼使用 Application Framework
Microsoft Foundation Class(MFC)
白頭宮女話天寶:Visual C++ 與MFC
縱覽MFC
General Purpose classes
Windows API classes
Application framework classes
High level abstractions
Afx全域函式
MFC巨集(macros)
MFC資料型態(data type)
第6章 MFC 程式設計導論 - MFC 程式的生死因果
不二法門:熟記 MFC類別的階層架構
需要什麼函式庫(.LIB)
需要什麼含入檔(.H)
precompiled headers
簡化的 MFC 程式架構 - 以Hello MFC 為例
Hello程式原始碼
CALLBACK 與 afx_msg
MFC 程式的來龍去脈
我只借用兩個類別:CWinApp 和CFrameWnd
CWinApp - 取代 WinMain 的地位
CFrameWnd - 取代WndProc 的地位
引爆器 - Application object
隱晦不明的WinMain
AfxWinInit - AFX內部初始化動作
CWinApp::InitApplication
CMyWinApp::InitInstance
CFrameWnd::Create產生主視窗(並註冊視窗類別)
奇怪的視窗類別名稱 Afx:b:14ae:6:3e8f
視窗顯示與更新
CWinApp::Run - 程式生命的活水源頭
把訊息與處理函式串接在一起:Message Map機制
來龍去脈總整理
Callback 函式
閒置時間(idle time)的處理:OnIdle
Dialog與Control
通用對話盒(Common Controls)
本章回顧
第7章 簡單而完整:MFC 骨幹程式
不二法門:熟記 MFC 類別的階層架構
MFC 程式的 UI 新風貌
Document/View支撐你的應用程式
利用 Visual C++ 工具完成 Scribble step0
骨幹程式使用哪些 MFC 類別?
Document Template 的意義
Scribble的 Document/View設計
主視窗的誕生
工具列和狀態列的誕生(Toolbar & Status bar)
滑鼠拖放(Drag and Drop)
訊息映射(Message Map)
標準選單 File/Edit/View/Window/Help
對話盒
改用CEditView
第四部分
電子書開放自由下載 聲明
第四篇 深入 MFC 程式設計
第8章 Document-View 深入探討
為什麼需要 Document-View(形而上)
Document
View
Document Frame(View Frame)
Document Template
CDocTemplate管理 CDocument / CView / CFrameWnd
Scribble Step1 的 Document(資料結構設計)
MFC Collection Classes 的選用
Template-Based Classes
Template-Based Classes 的使用方法
CScribbleDoc 的修改
SCRIBBLEDOC.H
SCRIBBLEDOC.CPP
文件:一連串的線條
CScribbleDoc 的成員變數
CObList
CScribbleDoc 的成員函式
線條與座標點
CStroke 的成員變數
CArray
CStroke 的成員函式
Scribble Step1 的View:資料重繪與編輯
CScribbleView 的修改
SCRIBBLEVIEW.H
SCRIBBLEVIEW.CPP
View 的重繪動作 - GetDocument 和OnDraw
CScribbleView 的成員變數
CScribbleView 的成員函式
View 與使用者的交談(滑鼠訊息處理實例)
ClassWizard 的輔佐
WizardBar的輔佐
Serialize:物件的檔案讀寫
Serialization 以外的檔案讀寫動作
檯面上的 Serialize 動作
檯面下的 Serialize 寫檔奧秘
檯面下的 Serialize 讀檔奧秘
DYNAMIC / DYNCREATE / SERIAL三巨集
Serializable 的必要條件
CObject 類別
IsKindOf
IsSerializable
CObject::Serialize
CArchive 類別
operator<< 和 operator>>
效率考量
自定 SERIAL 巨集給抽象類別使用
在 CObList 中加入 CStroke 以外的類別
Document 與 View 交流 - 為 Scribble Step4 做準備
第9章 訊息映射與命令繞行
到底要解決什麼
訊息分類
萬流歸宗 Command Target(CCmdTarget)
三個奇怪的巨集,一張巨大的網
DECLARE_MESSAGE_MAP 巨集
訊息映射網的形成:BEGIN_/ON_/END_ 巨集
米諾托斯(Minotauros)與西修斯(Theseus)
兩萬五千里長征 - 訊息的流竄
直線上溯(一般 Windows 訊息)
拐彎上溯(WM_COMMAND 命令訊息)
羅塞達碑石:AfxSig_xx 的秘密
Scribble Step2:UI 物件的變化
改變選單
改變工具列
利用 ClassWizard 連接命令項識別碼與命令處理函式
維護 UI 物件狀態(UPDATE_COMMAND_UI)
本章回顧
第10章 MFC與對話盒
對話盒編輯器
利用 ClassWizard 連接對話盒與其專屬類別
PENDLG.H
PENDLG.CPP
對話盒的訊息處理函式
MFC中各式各樣的MAP
對話盒資料交換與查核(DDX & DDV)
MFC中各式各樣的DDx_ 函式
如何喚起對話盒
本章回顧
第11章 View功能之加強與重繪效率之提昇
同時修改多個Views:UpdateAllViews 和OnUpdate
在 View 中定義一個hint
把 hint 傳給OnUpdate
利用 hint 增加重繪效率
可捲動的視窗:CScrollView
大視窗中的小窗口:Splitter
分裂視窗的功能
分裂視窗的程式概念
分裂視窗之實作
本章回顧
第12章 印表與預覽
概觀
列印動作的背景原理
MFC 預設的印表機制
Scribble 列印機制的補強
印表機的頁和文件的頁
配置 GDI 繪圖工具
尺寸與方向:關於映像模式(座標系統)
分頁
表頭(Header)與表尾(Footer)
動態計算頁碼
列印預覽(Print Preview)
本章回顧
第13章 多重文件與多重顯示
MDI 和SDI
多重顯像(Multiple Views)
視窗的動態分裂
視窗的靜態分裂
CreateStatic 和CreateView
視窗的靜態三叉分裂
Graph 範例程式
靜態分裂視窗之觀念整理
同源子視窗
CMDIFrameWnd::OnWindowNew
Text 範例程式
非制式作法的缺點
多重文件
新的 Document 類別
新的 Document Template
新的 UI 系統
新文件的檔案讀寫動作
第14章 MFC 多緒程式設計(Multi-threaded Programming in MFC)
從作業系統層面看執行緒
三個觀念:模組、行程、執行緒
執行緒優先權(Priority)
執行緒排程(Scheduling)
Thread Context
從程式設計層面看執行緒
Worker Threads 和 UI Threads
錯誤觀念
正確態度
MFC 多緒程式設計
探索CWinThread
產生一個 Worker Thread
產生一個 UI Thread
執行緒的結束
執行緒與同步控制
MFC 多緒程式實例
第15章 定製一個AppWizard
到底 Wizard 是什麼?
Custom AppWizard 的基本操作
剖析 AppWizard Components
Dialog Templates 和 Dialog Classes
Macros
Directives
動手修改 Top Studio AppWizard
利用資源編輯器修改 IDD_CUSTOM1 對話窗畫面
利用 ClassWizard 修改 CCustom1Dlg 類別
改寫 OnDismiss 虛擬函式,在其中定義macros
修改 text template
Top Studio AppWizard 執行結果
更多的資訊
第16章 站上眾人的肩膀 - 使用 Components 和 ActiveX Controls
什麼是 Component Gallery
使用Components
Splash screen
System Info for About Dlg
Tips of the Day
Components 實際運用:ComTest 程式
修改 ComTest 程式內容
使用 ActiveX Controls
ActiveX Control 基礎觀念:Properties、Methods、Events
ActiveX Controls 的五大使用步驟
使用 "Grid" ActiveX Control:OcxTest 程式
第五部分
電子書開放自由下載 聲明
第五篇 附錄
附錄A
無責任書評:從搖籃到墳墓 - Windows 的完全學習
無責任書評:MFC四大天王
附錄B Scribble Step5 程式原始碼列表
附錄C Visual C++ 5.0 MFC範例程式總覽
附錄D 以 MFC 重建 Debug Window(DBWIN)
《深入淺出 MFC》2/e 電子書開放自由下載 聲明 致親愛的大陸讀者 我是侯捷(侯俊傑)。自從華㆗理工大學於 1998/04 出版了我的《深入淺出 MFC》 1/e 簡體版(易名《深入淺出 Windows MFC 程序設計》)之後,陸陸續續我 收到了許多許多的大陸讀者來函。其㆗對我的讚美、感謝、關懷、殷殷垂詢, 讓我非常感動。 《深入淺出 MFC》2/e 早已於 1998/05 於臺灣出版。之所以遲遲沒有授權給大 陸進行簡體翻譯,原因我曾於回覆讀者的時候說過很多遍。我在此再說㆒次。 1998 年㆗,本書之發行公司松崗(UNALIS)即希望我授權簡體版,然因當時 我已在構思 3/e,預判 3/e 繁體版出版時,2/e 簡體版恐怕還未能完成。老是讓 大陸讀者慢㆒步看到我的書,令我至感難過,所以便請松崗公司不要進行 2/e 簡 體版之授權,直接等 3/e 出版後再動作。沒想到㆒拖經年,我的 3/e 寫作計劃 並沒有如期完成,致使大陸讀者反而沒有《深入淺出 MFC》2/e 簡體版可看。 《深入淺出 MFC》3/e 沒有如期完成的原因是,MFC 本體架構並沒有什麼大改 變。《深入淺出 MFC》2/e 書㆗所論之工具及程式碼雖採用 VC5+MFC42,仍 適用於目前的 VC6+MFC421(唯,工具之畫面或功能可能有些微變化)。 由於《深入淺出 MFC》2/e 並無簡體版,因此我時時收到大陸讀者來信詢問購 買繁體版之管道。㆒來我不知道是否臺灣出版公司有提供海外郵購或電購,㆓ 來即使有,想必帶給大家很大的麻煩,㆔來兩岸消費水平之差異帶給大陸讀者 的負擔,亦令我深感不安。 1
因此,此書雖已出版兩年,鑑於仍具閱讀與技術㆖的價值,鑑於繁簡轉譯製作 ㆖的費時費工,鑑於我對同胞的感情,我決定開放此書內容,供各位免費閱讀。 我 已 為 《 深 入 淺 出 MFC 》 2/e 製 作 了 PDF 格 式 之 電 子 檔 , 放 在 http://www.jjhou.com 供自由㆘載。北京 http://expert.csdn.net/jjhou 有侯捷網站的 ㆒個 GBK mirror,各位也可試著自該處㆘載。 我所做的這份電子書是繁體版,我沒有精力與時間將它轉為簡體。這已是我能 為各位盡力的極限。如果(萬㆒)您看不到檔案內容,可能與字形的安裝有關 — 雖然我已嘗試內嵌字形。anyway,閱讀方面的問題我亦沒有精力與時間為您解 決。請各位自行開闢討論區,彼此交換閱讀此電子書的 solution。請熱心的讀者 告訴我您閱讀成功與否,以及網㆖討論區(如有的話)在哪裡。 曾有讀者告訴我,《深入淺出 MFC》1/e 簡體版在大陸被掃描㆖網。亦有讀者 告訴我,大陸某些書籍明顯對本書侵權(詳細情況我不清楚)。這種不尊重作 者的行為,我雖感遺憾,並沒有太大的震驚或難過。㆒個社會的進化,終究是 ㆒步㆒步衍化而來。臺灣也曾經走過相同的階段。但盼所有華㆟,尤其是我們 從事智慧財產行為者,都能夠儘快走過灰暗的㆒面。 在現代科技的協助㆘,文件影印、檔案複製如此方便,智財權之尊重有如「君 子不欺暗室」。沒有㆟知道我們私㆘的行為,只有我們自己心知肚明。《深入 淺出 MFC》2/e 雖免費供大家閱讀,但此種作法實非長久之計。為計久長,我 們應該尊重作家、尊重智財,以良好(至少不差)的環境培養有實力的優秀技 術作家,如此才有源源不斷的好書可看。 我的近況,我的作品,我的計劃,各位可從前述兩個網址獲得。歡迎各位寫信 給我(jjhou@ccca.nctu.edu.tw)。雖然不㆒定能夠每封來函都回覆,但是我樂於 知道讀者的任何點點滴滴。 2
關於《深入淺出 MFC》2/e 電子書 《深入淺出 MFC》2/e 電子書共有五個檔案: 檔名 dissecting MFC 2/e part1.pdf dissecting MFC 2/e part2.pdf dissecting MFC 2/e part3.pdf dissecting MFC 2/e part4.pdf dissecting MFC 2/e part5.pdf 內容 chap1~chap3 chap4 chap5~chap7 chap8~chap16 appendix A,B,C,D 大小 bytes 3,384,209 2,448,990 2,158,594 5,171,266 1,527,111 每個檔案都可個別閱讀。每個檔案都有書籤(亦即目錄連結)。每個檔案都不 需密碼即可開啟、選擇文字、列印。 請告訴我您的資料 每 ㆒ 位 ㆘ 載 此 份 電 子 書 的 朋 友 , 我 希 望 您 寫 ㆒ 封 email 給 我 (jjhou@ccca.nctu.edu.tw),告訴我您的以㆘資料,俾讓我對我的讀者有㆒些基 本瞭解,謝謝。 姓名: 現職: 畢業學校科系: 年齡: 性別: 居住省份(如是臺灣讀者,請寫縣市): 對侯捷的建議: -- the end 3
山高月小 水落石出 山高月小 水落石出 山高月小 山高月小 水落石出 水落石出
深入淺出 MFC (第㆓版 使用 Visual C++ 5.0 & MFC 4.2) Dissecting MFC (Second Edition Using Visual C++ 5.0 & MFC 4.2) 侯俊傑 著 松崗電腦圖資料股份有限公司 印行
Pioneer is the one that an arrow on his back
讀者來函 新竹市新竹市新竹市新竹市 . 高翠路高翠路高翠路高翠路 . 劉嘉均劉嘉均劉嘉均劉嘉均 深入淺出 MFC 這本書,讓我想起自己曾經暗暗告訴過自 1996 年 11 月,我在書店看到了 深入淺出 深入淺出 深入淺出 己:Application Framework 真是㆒個好東西。我在書店駐足察看這本書五分鐘之後,我便知 道這本書是㆒定要買㆘的。適巧我工作㆖的專案進度也到了㆒個即將完成的階度,所以我便 ㆒口氣將這本書給讀完了,而且是徹徹底底讀了兩遍。 我個㆟特別喜歡第3章:MFC 六大關鍵技術之模擬。這章內容的設計的確在 MFC 叢林㆗, 大刀闊斧㆞披露出最重要的筋絡,我相信這正是所有學習 MFC 的㆟所需要的㆒種表明方 式。對我而言,以往遺留的許多疑惑,在此都㆒㆒得到了解答。最重要的是,您曾經說過, 學習 MFC 的過程㆗最重要的莫過於自我審視 MFC 程式碼的能力。很高興㆞,在我看完本書 之後,我確實比以前更有能力來看 MFC 原始碼了。總之,我為自己能夠更深入了解 MFC 而 深入淺出 MFC 這本書。我受益匪淺。 要向您說聲謝謝。謝謝您為我們寫了 深入淺出 深入淺出 深入淺出 加拿大加拿大加拿大加拿大 . 溫哥華溫哥華溫哥華溫哥華 . 陳宗泰陳宗泰陳宗泰陳宗泰 閣㆘之書,尚有㆟性,因此我參而再參,雖不悟,也是 enjoyable。看閣㆘之書的附帶效果 是,重燃我追求知識的熱情。知也無涯,定慧談何容易。向閣㆘致敬:『Kruglinski 的 Inside Visual C++ 和 Hou 的 Dissecting MFC 是通往 MFC Programming 的皇家大道』。 i
分享到:
收藏