2024香港最具教育競爭力中學/小學/幼稚園50強龍虎榜
2024香港最具教育競爭力中學/小學/幼稚園排名指南
最近十一年香港最具教育競爭力中學/小學/幼稚園50強完整版榜單:
2024202320222021/202019201820172016201520142013
教育競爭力評比體系說明
校風評比體系說明
服务全球华人的中英文書籍網上書店
您的購物車是空的

深入淺出MFC

  • 作者:侯俊傑 著
  • 出版社: 華中科技大學出版社
  • 出版時間:2001-01-02
  • 版次:2
  • 商品編號: 10118373

    頁數:701

    裝幀:平裝

    開本:16開

    紙張:膠版紙

    印次:1

    ISBN:9787900614933

    印刷時間:2007-02-01

    正文語種:中文


HK$102.40 (速遞費用須知)
購買額滿HK$158免運費
免郵費優惠僅限香港、澳门、
台灣及中國大陸

購買數量:

內容簡介

內容簡介

  本書分為四大篇。第一篇提出學習MFC程序設計之前的必要基礎,包括Widnows程序的基本觀念以及C++的高階議題。「學前基礎」是相當主觀的認定,不過,甚於我個人的學習經驗以及教學經驗,我的挑選應該頗具說服力。第二篇介紹Visual C++整合環境開發工具。本篇只不過是提綱挈領而已,並不企圖取代 Visual C++使用手冊。然而對於軟件使用的老手,此篇或已足以讓您掌握Visual C++整合環境。工具的使用雖然談不上學問,但在視覺化軟件開發過程中扮演極重角色,切莫小覷它。
  第三篇介紹application framework的觀念,以及MFC骨幹程序,所謂骨幹程序,是指Visual C++的工具AppWizard所產生出來的程序碼。當然,AppWizard會根據你的選項做出不同的程序碼,我所據以解說的,是大眾化選項下的產品。
  第四篇以微軟公司附於Visual C++光碟片上的一個範例程序Scribble為主軸,一步一步加上新的功能。並在其間深入介紹Runtime Type Information(RTTI)、Dynamic Creation、Persistence(Serialization)、Message Mapping、Command Routing等核心技術。這些技術正是其他書籍最缺乏的部分。此篇之最後數章則脫離Scribble程序,另成一格。
  本書內含光盤一片,書中所有原始碼與可執行文件盡在其中。

作者簡介

  侯俊傑,先生不知何許人也,閑靜少言,不慕榮利。好讀書,求甚解;每有會意,擊節高歌,欣然忘食。嗜咖啡,妻嚴,不能常得。親舊知其如此,或備而禮之,或置而招之;造飲輒盡,期在必快。既快而退,曾不吝去留。善善惡惡,賢賢賤不肖。曲高和寡,直言罪人,晏如也。胸有點墨,心無城府。常著文章白娛,頗示己志。忘懷得失,以此自終。

目錄

第0章 你一定要知道(導讀)
這本書適合誰
你需要什麼技術基礎
你需要什麼軟硬件環境
讓我們使用同一種語言
本書符號習慣
本書例程的取得
範例程序說明
與前版本之差異
如何聯絡作者
第一篇 勿在浮砂築高台
第1章 Win32程序基本概念
Win32程序開發流程
需要什麼函數庫(.LIB)
需要什麼頭文件(.H)
以消息為基礎,以事件驅動之(message based,event driven)
一個具體而微的Win32程序
程序進入點WinMain
窗口類之註冊與窗口之誕生
消息循環
窗口的生命中樞:窗口函數
消息映射(Message Map)的雛形
對話框的運行
模塊定義文件(.DEF)
資源描述檔(.RC)
Widnows程序的生與死
空閒時間的處理:OnIdle
Console程序
Console程序與DOS程序的差別
Console程序的編譯鏈接
JBACKUP:Win32 Console程序設計
MFCCON:MFC Console程序設計
行程與線程(Process and Thread)
核心對象
一個行程的誕生與死亡
產生子行程
一個線程的誕生與死亡
以_beginthreadex取代CreateThread
線程優先級(Priority)
多線程程序設計實例
第2章 C++的重要性質
類及其成員——談封裝(encapsulation)
基類與派生類:談繼承(Inheritance)
this指針
虛擬函數與多態(Polymorphism)
類與對象大解剖
Object slicing與虛擬函數
靜態成員(變量與函數)
C++程序的生與死:兼談構造函數與解構函數
四種不同的對象生存方式(in stack、in heap、global、local static)
執行期類型信息(RTTI)
動態生成(Dynamic Creation)
異常處理(Exception Handling)
Template
Template Functions
Template Classes
Template的編譯與鏈接
第3章 MFC六大關鍵技術之仿真
MFC類層次結構
Frame 1範例程序
MFC程序的初始化過程
Frame 2範例程序
RTTI(執行期類型識別)
類別型錄網與CRuntimeClass
DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏
Frame 3範例程序
IsKindOf(類型識別)
Frame 4範例程序
Dynamic Creation(動態生成)
DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE宏
Frame 6範例程序
Persistence(永久保存)機制
Serialize(數據讀寫)
DECLARE_SERIAL/IMPLEMENT_SERIAL宏
沒有範例程序
Message Mapping(消息映射)
Frame 7範例程序
Command Routing(命令傳遞)
Frame 8範例程序
本章回顧
第二篇 欲善工事先利其器
第4章 Visual C++集成開發環境
安裝與組成
四個重要的工具
內務府總管:Visual C++集成開發環境
關於project
關於工具設定
Source Browser
Online Help
調試工具
VC++調試器
Exception Handling
程序代碼產生器:AppWizard
東圈西點完成MFC程序骨幹
威力強大的資源編輯器
Icon編輯器
Cursor編輯器
Bitmap編輯器
工具欄(Toolbar)編輯器
VERSIONINFO資源編輯器
字符串表格(Accelerator)編輯器
菜單(Menu)編輯器
加速鍵(Accelerator)編輯器
對話框(Dialog)編輯器
Console程序的項目管理
第三篇 淺出MFC程序設計
第5章 總觀Application Framework
什麼是Application Framework?
侯捷怎麼說
我怎麼說
別人怎麼說
為什麼使用Application Framework
Microsoft Foundation Classes(MFC)
白頭宮女話天寶:Visual C++與MFC
縱覽MFC
General Purpose classes
CObject
數據處理類(collection classes)
雜項類
異常處理類(exception handling classes)
Windows API classes
Application framework classes
High level Abstractions
Afx全局函數
MFC宏(macros)
MFC數據類型(data types)
第6章 MFC程序的生死因果
不二法門:熟記MFC類的層次結構
需要什麼函數庫?
需要什麼頭文件?
簡化的MFC程序結構——以Hello MFC為例
Hello程序程序代碼
MFC程序的來龍去脈(causal relations)
我只借用兩個類: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 Dialogs)
本章回顧
第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的選用
CScribbleDoc的修改
文件:一連串的線條
線條與坐標點
Scribble Step 1的View:數據重繪與編輯
CScribbleView的修改
View的重繪操作:GetDocument和OnDraw
ClassWizard的輔佐
WizardBar的輔佐
Serialize:對象的檔案讀寫
Serialization以外的檔案讀寫操作
檯面上的Serialize操作
檯面下的Serialize寫檔奧秘
檯面下的Serialize讀檔奧秘
DYNAMIC/DYNCREATE/SERIAL三宏
Serializable的必要條件
CObject類
IsKindOf
IsSerializable
CObject::Serialize
CArchive類
operator《和operator》
效率考慮
自定SERIAL宏給抽象類使用
在CObList中加入CStroke以外的類
Document與View交流——為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連接對話框與其專用類
對話框的消息處理函數
對話框數據交換與校驗(DDX&DDV)
如何喚起對話框
本章回顧
第11章 View功能的加強與重繪效率的提高
同時修改多個Views:UpdateAllViews和OnUpdate
在View中定義一個hint
把hint傳給OnUpdate
利用hint增加重繪效率
可捲動的窗口:CScrollView
大窗口中的小窗口:Splitter
切分窗口的功能
切分窗口的程序概念
切分窗口的實現
本章回顧
第12章 打印與預覽
概述
打印操作的後台原理
MFC默認的打印機制
Scribble打印機制的增強
打印機的頁和文件的頁
配置GDI繪圖工具
尺寸與方向:關於映射方式(坐標系統)
分頁
頁眉與頁腳
動態計算頁碼
打印預覽(Print Preview)
本章回顧
第13章 多重文件與多重顯示
MDI和SDI
多重顯示(Multiple Views)
窗口的動態切分
窗口的靜態切分
CreateStatic和CreateView
窗口的靜態三叉切分
Graph範例程序
靜態切分窗口之觀念整理
同源子窗口
CMDIFrameWnd::OnWindowNew
Text範例程序
非標準做法的缺點
多重文件
新的Cocument類
新的Document Template
新的UI系統
新文件的檔案讀寫操作
第14章 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修改IDD_CUSTOM1對話框的對應類CCustomlDlg
改寫OnDismiss虛擬函數,在其中定義macros
修改text template
Top Studio AppWizard執行結果
更多的信息
第16章 站上眾人的肩膀——使用Components&activeX Controls
什麼是Component Gallery
使用Components
Splash screen
system Info for About Dlg
Tip of the Day
Components實際運用:ComTest程序
修改ComTest程序內容
使用ActiveX Controls
ActiveX Control基礎觀念:Properties、Methods、Events
ActiveX Controls的五大使用步驟
使用ActiveX Control:OcxTest程序
第五篇 附錄
附錄A 無責任書評:從搖籃到墳墓Windows的完全學習
無責任書評:MFC四大天王
附錄B Scribble Step 5完整原始碼
附錄C Visual C++5.0MFC範例程序一覽
附錄D 以MFC重建DBWIN


我們接受以下的付款方式︰VISA、Mastercard、JCB 信用卡、PayPal、銀行轉帳。