注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計C/C++及其相關Visual C++權威剖析:MFC的原理.機制與開發(fā)實例

Visual C++權威剖析:MFC的原理.機制與開發(fā)實例

Visual C++權威剖析:MFC的原理.機制與開發(fā)實例

定 價:¥65.00

作 者: 辛長安、王顔國 編
出版社: 清華大學出版社
叢編項:
標 簽: VC++

ISBN: 9787302170204 出版時間: 2008-05-01 包裝: 平裝
開本: 16 頁數(shù): 478 pages 字數(shù):  

內(nèi)容簡介

  本書為清華大學出版社所出版的《VC++編程技術與難點剖析》的第2版。本書以C++語法和MFC類庫編程的重點、難點內(nèi)容為主線,從實踐應用的角度,結(jié)合經(jīng)典的實例闡述C++類的特性,深入剖析VC++,特別是MFC編程的體系結(jié)構,使有初級基礎的讀者能夠快速掌握VC++的MFC程序設計思想和C++的語言精華。全書共分4篇21章。第1篇闡述C++的關鍵語法,包括重載、虛擬函數(shù)、靜態(tài)成員、類模板、多重繼承和內(nèi)嵌類等內(nèi)容;第2篇介紹MFC的核心機制,重點剖析窗口封裝類CWnd及其派生類,以及Windows窗口操作的相關內(nèi)容,闡釋了MFC的消息映射與消息處理機制;第3篇講解了窗口編程,包括自定義控件、優(yōu)化程序界面以及如何控制MFC的文檔/視圖框架結(jié)構(包括單文檔、多文檔、視圖拆分等);第4篇是高級技術篇,講解了屏幕繪圖、打印、多線程編程、Web編程以及異常處理技術。本書并非泛講VC++編程基礎的入門教材,因此適合有一定VC++學習經(jīng)驗或編程基礎的讀者。

作者簡介

  辛長安,C++資深程序員,系統(tǒng)分析師,軟件開發(fā)領域自由撰稿人。從事C/C++、計算機圖形仿真等研發(fā)工作十余年,組織開發(fā)過多個國家級項目,2002年出版《VC++編程技術與難點》一書廣受讀者青睞?,F(xiàn)任職北京波爾世通信息技術公司,系統(tǒng)分析師。從事無線電通信領域的圖形仿真分析、3維GIS等研發(fā)工作。

圖書目錄

第1篇  C++關鍵語法及其在MFC中的應用
第1章  重載    2
1.1  函數(shù)重載    2
1.1.1  問題的提出    2
1.1.2  如何區(qū)分重載函數(shù)    2
1.1.3  重載函數(shù)使用實例    3
1.1.4  編譯器調(diào)用重載函數(shù)的規(guī)則    4
1.1.5  在父類和子類中定義重載函數(shù)    5
1.2  運算符重載    7
1.2.1  運算符重載的定義    7
1.2.2  運算符重載的特點    8
1.2.3  將運算符重載為友元和成員函數(shù)    9
1.2.4  operator調(diào)用形式    11
1.2.5  重載運算符的相關問題    12
1.3  函數(shù)重載在MFC中的應用舉例    15
1.4  運算符重載在MFC中的應用舉例    16
第2章  虛擬函數(shù)    18
2.1  問題的提出:靜態(tài)聯(lián)編與動態(tài)聯(lián)編    18
2.2  引入虛擬函數(shù)    20
2.2.1  實例:定義虛擬函數(shù)    20
2.2.2  實例:編寫通用函數(shù)    21
2.2.3  實例:定義主函數(shù)    21
2.3  虛擬函數(shù)的實現(xiàn)機制    22
2.3.1  類和對象的內(nèi)存分配機制    22
2.3.2  基類與派生類的內(nèi)存分配關系    23
2.3.3  非虛擬函數(shù)的內(nèi)存分配機制    25
2.3.4  深入:虛擬函數(shù)的內(nèi)存分配機制    25
2.4  虛擬函數(shù)的應用    27
2.4.1  不改變父類的代碼,可以改變父類的行為    28
2.4.2  不知道對象的類型,可以執(zhí)行對象的特定操作    30
2.4.3  如果類包含虛擬成員函數(shù),則將此類的析構函數(shù)也定義為虛擬函數(shù)    37
2.5  純虛擬函數(shù)    39
2.6  虛擬函數(shù)在MFC中的應用舉例    41
第3章  靜態(tài)成員和類模板    43
3.1  靜態(tài)成員    43
3.1.1  C語法中的靜態(tài)變量    43
3.1.2  C++中的靜態(tài)成員變量    44
3.1.3  靜態(tài)成員函數(shù)    46
3.1.4  靜態(tài)成員變量在MFC中的應用舉例    47
3.1.5  靜態(tài)成員函數(shù)在MFC中的應用舉例    48
3.2  類模板    49
3.2.1  問題的提出    49
3.2.2  類模板的定義    51
3.2.3  使用類模板和模板類    58
3.2.4  模板在MFC中的應用舉例    62
第4章  多重繼承和內(nèi)嵌類    64
4.1  繼承方式與訪問權限    64
4.1.1  派生類的繼承權限    64
4.1.2  在基類中定義數(shù)據(jù)成員的原則    65
4.1.3  以公有方式派生子類    66
4.2  多重繼承和虛擬基類    67
4.2.1  一個例子    67
4.2.2  多重繼承的二義性    68
4.2.3  使用虛擬基類解決二義性問題    70
4.2.4  使用虛擬基類需要注意的問題    71
4.3  內(nèi)嵌類與類合成    74
4.3.1  內(nèi)嵌類的定義    74
4.3.2  內(nèi)嵌類的使用方法    75
4.3.3  內(nèi)嵌類的應用價值    77
4.3.4  類合成    85
4.4  類繼承與類合成的應用    86
4.4.1  構造初始化和賦值操作    86
4.4.2  繼承與合成的選擇    90
4.5  多重繼承和內(nèi)嵌類在COM中的應用    92
第2篇  MFC核心機制
第5章  MFC類結(jié)構    98
5.1  CObject類    99
5.1.1  支持類診斷    99
5.1.2  提供運行時類信息    102
5.1.3  支持類的連載    106
5.2  CCmdTarget類    108
5.3  CWinThread類    109
5.3.1  虛函數(shù)InitInstance    110
5.3.2  虛函數(shù)Run    110
5.3.3  虛函數(shù)ExitInstance    112
5.4  CWnd類    112
5.4.1  繪制窗口    112
5.4.2  操作窗口子控件    113
5.4.3  窗口定時器    113
5.4.4  窗口消息的相關函數(shù)    113
5.4.5  默認的消息處理函數(shù)    113
第6章  CWnd類與Windows窗口的關系    116
6.1  使用WIN32 API創(chuàng)建窗口    116
6.2  親自動手創(chuàng)建窗口封裝類    119
6.2.1  實例代碼    119
6.2.2  原理分析    132
6.3  CWnd類如何封裝Windows窗口    132
6.3.1  使用操作映射的函數(shù)    132
6.3.2  CWnd如何處理窗口消息    134
第7章  CWnd的派生類    137
7.1  CFrameWnd類    137
7.1.1  CFrameWnd的創(chuàng)建    137
7.1.2  管理視圖對象    139
7.1.3  管理控制條    140
7.1.4  分發(fā)命令消息    141
7.1.5  必要的消息處理    142
7.2  CView類    142
7.2.1  關聯(lián)文檔對象    142
7.2.2  視圖的繪制    143
7.2.3  虛函數(shù)virtual void OnUpdate(CView* pSender,LPARAM,CObject*)    144
7.2.4  虛函數(shù)virtual void OnInitialUpdate()    144
7.2.5  虛函數(shù)virtual void CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType)    144
7.2.6  虛函數(shù)virtual void PostNcDestroy();    145
7.2.7  虛函數(shù)virtual BOOL OnCmdMsg(UINT, int, void*, AFX_CMDHANDLERINFO* )    145
7.2.8  虛函數(shù)virtual void OnActivateView(BOOL, CView*,CView*)    146
7.3  CDialog類    146
7.4  模態(tài)對話框的消息循環(huán)    146
7.4.1  模態(tài)對話框的創(chuàng)建與模式循環(huán)    147
7.4.2  結(jié)束模式循環(huán)    150
7.4.3  創(chuàng)建普通的模態(tài)窗口    151
7.5  對話框的命令路由    151
第8章  窗口操作    153
8.1  檢索窗口    153
8.1.1  根據(jù)標題和窗口類查找窗口    153
8.1.2  根據(jù)窗口的相對位置或所屬關系查找窗口    154
8.1.3  檢索窗口的應用    155
8.2  屏幕坐標與客戶區(qū)坐標    157
8.3  窗口之間的層次關系    158
8.3.1  窗口實例的信息結(jié)構    158
8.3.2  桌面窗口(第一層窗口)    158
8.3.3  頂級窗口(第二層窗口)    158
8.3.4  子窗口(第三層以下窗口)    159
8.3.5  重疊窗口與彈出窗口的區(qū)別    159
8.4  父窗口與子窗口    159
8.4.1  子窗口的刷新    159
8.4.2  子窗口的顯示設備上下文    160
8.4.3  處理WM_CTLCOLOR消息    161
8.4.4  頂級窗口向子窗口轉(zhuǎn)發(fā)系統(tǒng)消息    162
8.4.5  子窗口向父窗口發(fā)送通知消息    163
8.4.6  父窗口向子窗口發(fā)送反射消息    164
8.4.7  檢索父窗口    165
8.5  Windows窗口類    166
8.5.1  窗口類的結(jié)構    167
8.5.2  系統(tǒng)定義的窗口類    169
8.6  窗口的子類化和超類化    170
8.6.1  實例子類化和全局子類化    170
8.6.2  子類化的規(guī)則與局限    172
8.6.3  使用超類化代替子類化    173
第9章  消息映射與消息處理    174
9.1  MFC的消息映射    174
9.1.1  消息映射機制    174
9.1.2  消息映射的宏定義    176
9.2  非窗口消息:命令消息    179
9.2.1  命令ID    179
9.2.2  命令消息映射項宏定義    179
9.3  非窗口消息:通知消息    180
9.3.1  通過WM_COMMAND發(fā)送的通知消息    180
9.3.2  WM_NOTIFY通知消息與ON_NOTIFY宏    180
9.3.3  幾個特殊的通知消息    182
9.4  非窗口消息:反射消息    183
9.5  非窗口消息:非窗口消息的傳遞路由    184
9.6  非窗口消息:非窗口消息的擴展    197
9.6.1  處理對象擴展    197
9.6.2  發(fā)送對象擴展    198
第10章  特殊消息和處理函數(shù)    200
10.1  空閑消息處理    200
10.1.1  UI線程的空閑處理    200
10.1.2  主框架窗口的空閑處理    202
10.1.3  對話框的空閑處理    203
10.2  命令狀態(tài)更新消息    203
10.2.1  命令狀態(tài)更新的實現(xiàn)機制    203
10.2.2  在主框架窗口中實現(xiàn)命令狀態(tài)更新    205
10.2.3  在對話框中實現(xiàn)命令狀態(tài)更新    206
10.3  使用OnCmdMsg()函數(shù)分發(fā)非窗口消息    211
第3篇  窗口編程
第11章  控件子窗口    216
11.1  控件的創(chuàng)建    216
11.1.1  使用API函數(shù)創(chuàng)建控件    216
11.1.2  使用MFC封裝類創(chuàng)建控件    217
11.1.3  使用對話框模板創(chuàng)建控件    219
11.2  控件的子類化    220
11.3  控件的屬主畫與自定義畫概述    223
11.4  屬主畫消息處理和虛擬函數(shù)    223
11.4.1  屬主畫消息的處理    224
11.4.2  屬主畫反射消息的處理實例    225
11.4.3  自畫虛擬函數(shù)DrawItem()    226
11.4.4  自畫虛擬函數(shù)MeasureItem()    227
11.4.5  自畫虛擬函數(shù)CompareItem()    227
11.4.6  自畫虛擬函數(shù)DeleteItem()    228
11.5  幾個控件的屬主畫特性    228
11.5.1  LISTBOX的屬主畫特性    228
11.5.2  BUTTON的屬主畫特性    231
11.5.3  COMBOBOX的屬主畫特性    234
11.5.4  LISTCTRL的屬主畫特性    237
11.6  控件的自定義繪圖    237
11.6.1  繪制方式    237
11.6.2  CDDS_PREPAINT階段    239
11.6.3  CDDS_ITEMPOSTPAINT階段    240
第12章  自定義控件    242
12.1  窗口類    242
12.2  通知消息    244
12.3  繪制    245
12.4  分隔條控件    246
12.4.1  基本功能    246
12.4.2  控件的封裝類以及相應函數(shù)代碼    247
第13章  開發(fā)使用控制條    255
13.1  為控制條按需分配客戶區(qū)    255
13.1.1  API函數(shù)HDWP::BeginDeferWindowPos()    255
13.1.2  API函數(shù)HDWP DeferWindowPos()    256
13.1.3  API函數(shù)BOOL EndDeferWindowPos()    256
13.1.4  具體代碼    256
13.2  控制條基類CControlBar    259
13.2.1  繪制控制條    259
13.2.2  空閑處理    262
13.2.3  向父窗口傳遞特殊消息    263
13.2.4  操作控制條風格    264
13.3  控制條的??颗c浮動    265
13.3.1  控制條的停靠    265
13.3.2  控制條的浮動    268
13.4  實現(xiàn)??扛幼哟翱?nbsp;   271
第14章  工具欄和菜單優(yōu)化    281
14.1  添加按鈕文本    281
14.2  創(chuàng)建工具欄的子控件    283
14.3  動態(tài)創(chuàng)建菜單    287
14.3.1  菜單封裝類CMenu    287
14.3.2  編輯菜單條目    289
14.3.3  為窗口關聯(lián)主菜單    291
14.3.4  創(chuàng)建浮動的彈出菜單    292
14.4  菜單的屬主畫    293
14.4.1  菜單的屬主畫機制    293
14.4.2  菜單的自畫實現(xiàn)機制    293
14.4.3  自繪彈出菜單    295
第15章  單文檔和多文檔編程    303
15.1  CWinApp類全局對象    303
15.2  注冊表和INI文件操作    304
15.3  命令行參數(shù)處理    305
15.3.1  MFC預定義的參數(shù)    305
15.3.2  自定義命令行參數(shù)    308
15.4  單文檔(SDI)模板框架    309
15.4.1  構造文檔模板類    310
15.4.2  命令行參數(shù)的解析與處理    311
15.4.3  直接創(chuàng)建相應對象的成員函數(shù)    313
15.4.4  單文檔非拆分視圖的切換    315
15.5  多文檔(MDI)模板框架    317
15.5.1  概述    317
15.5.2  MDI主框架窗口的創(chuàng)建過程    318
15.5.3  MDI主框架窗口的消息傳遞    321
15.5.4  CMDIChildWnd子框架    322
15.6  CDocument類的文檔管理功能    324
15.6.1  文檔對象的連載    324
15.6.2  新建文件    325
15.6.3  打開文件    325
15.6.4  保存文件    327
15.6.5  關閉文件    328
15.6.6  文檔的“修改”標志    330
15.6.7  文檔對象與文檔模板實例及視圖的關聯(lián)    330
第16章  編寫多框架的應用程序    333
16.1  創(chuàng)建多框架的必要性    333
16.2  自動創(chuàng)建的多框架程序    334
16.2.1  一個實例    334
16.2.2  多框架的秘密    337
16.3  改進自動創(chuàng)建的多框架程序    339
16.3.1  通過文檔模板指針改進程序    339
16.3.2  重載CWinApp::OnFileNew()接口改進程序    340
16.4  手工創(chuàng)建多框架程序    344
16.5  拆分視圖:認識CSplitterWnd類    349
16.5.1  概述    349
16.5.2  動態(tài)拆分和靜態(tài)拆分    350
16.6  應用CView::OnCreate()消息處理函數(shù)實現(xiàn)拆分    353
16.7  創(chuàng)建非視圖的拆分子窗口    355
16.8  拆分視圖的創(chuàng)建刪除和隱藏顯示    357
第4篇  高級技術
第17章  屏幕繪圖    364
17.1  基類CDC    364
17.1.1  CDC類的封裝機制    364
17.1.2  應用CDC類繪圖    366
17.2  CWindowDC與CClientDC    367
17.3  WM_PAINT窗口消息與CPaintDC類    370
17.3.1  窗口的無效區(qū)域產(chǎn)生WM_PAINT窗口消息    370
17.3.2  設置設備上下文的剪裁區(qū)    370
17.3.3  繪圖前處理WM_ERASEBKGND消息    371
17.3.4  主動刷新窗口繪圖    371
17.3.5  WM_PAINT消息的發(fā)送時機    371
17.3.6  在WM_PAINT消息處理中使用CPaintDC類    371
17.4  使用設備上下文的剪裁區(qū)提高刷新效率    373
17.4.1  通過設備上下文的當前路徑選擇剪裁區(qū)域    373
17.4.2  通過區(qū)域?qū)ο筮x擇剪裁區(qū)域    374
17.4.3  為曲線選擇剪裁區(qū)域    374
17.4.4  定時刷新曲線的程序示例    375
第18章  打印    383
18.1  準備打印設備和打印參數(shù)    383
18.2  單頁打印    385
18.3  分頁打印    387
18.4  調(diào)整圖文打印尺寸    394
18.5  窗口的自動打印    397
18.5.1  自動打印的消息處理    397
18.5.2  自動打印客戶區(qū)和非客戶區(qū)    398
第19章  多線程的創(chuàng)建與控制    404
19.1  工作者線程和界面線程    404
19.1.1  創(chuàng)建工作者線程    404
19.1.2  用戶界面線程與消息循環(huán)    407
19.1.3  主線程與輔線程    407
19.1.4  用戶界面線程的創(chuàng)建    409
19.2  線程和進程的優(yōu)先級    417
19.2.1  進程的優(yōu)先級類    418
19.2.2  線程的優(yōu)先級別    418
19.2.3  線程優(yōu)先級值    419
19.3  線程的終止    419
19.3.1  線程的正常終止    419
19.3.2  線程的強行終止    420
19.4  線程間的互斥    420
19.4.1  臨界區(qū)    421
19.4.2  互斥    422
19.5  線程間的同步    425
19.5.1  線程之間的間接制約和直接制約    425
19.5.2  線程的同步運行    425
19.6  線程間的資源共享    428
19.6.1  共享對象句柄    428
19.6.2  共享對象句柄的操作局限    429
19.6.3  共享MFC對象    430
19.6.4  多線程示例    431
第20章  操作Web網(wǎng)頁    438
20.1  了解HTML超文本標記語言    438
20.2  DHTML的定義    439
20.2.1  窗口對象    440
20.2.2  事件對象    440
20.2.3  子框架對象    441
20.2.4  屏幕對象    441
20.2.5  文檔對象    441
20.2.6  全集對象(all)    441
20.2.7  集合對象    442
20.3  了解JavaScript和VBScript腳本語言    442
20.4  將Web瀏覽器嵌入應用程序    443
20.4.1  使用MSIE ActiveX控件    443
20.4.2  應用CHtmlView視圖類    445
20.5  操作單框架網(wǎng)頁元素    447
20.5.1  COM接口與DHTML對象的關系    447
20.5.2  訪問文檔元素    448
20.5.3  訪問單框架文檔元素的程序示例    450
20.6  操作多框架網(wǎng)頁元素    453
第21章  異常處理    460
21.1  C++異常處理    460
21.1.1  異常處理的關鍵字    460
21.1.2  不進行異常處理的代碼    460
21.1.3  增加異常處理代碼以后    462
21.2  結(jié)構化異常處理    464
21.3  異常處理中的資源釋放    465
21.3.1  局部對象的自動析構    465
21.3.2  拋出對象的釋放處理    466
21.3.3  必要的資源清理和系統(tǒng)復位    468
21.3.4  清理沒有捕獲的異常    469
21.4  何時使用異常處理    469
21.4.1  集中處理錯誤信息    469
21.4.2  化簡返回值的傳遞過程    470
21.4.3  在構造函數(shù)中拋出異常    470
21.5  MFC的異常處理    470
21.5.1  MFC的異常類CException    470
21.5.2  MFC的CException派生類:CArchiveException    472
21.5.3  MFC的CException派生類:CFileException    473
21.5.4  MFC的CException派生類:CDBException、CDaoException    475
21.5.5  MFC的CException派生類:CResourceException 、CUserException、 CMemoryException、CNotSupportException    475
21.5.6  自定義CException的派生類

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號