注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計.NETMicrosoft Visual C++ .NET技術內幕

Microsoft Visual C++ .NET技術內幕

Microsoft Visual C++ .NET技術內幕

定 價:¥106.00

作 者: (美)George Shepherd,(美)David Kruglinski著;潘愛民譯
出版社: 清華大學出版社
叢編項: 微軟 NET程序員系列
標 簽: VC++.NET

ISBN: 9787302089315 出版時間: 2004-07-01 包裝: 膠版紙
開本: 23cm+光盤1片 頁數(shù): 920 字數(shù):  

內容簡介

  本書是經(jīng)典的''''VisualC++技術內幕''''的最新版。VisualC++一方面是一個C++實現(xiàn),它提供了一個功能強大的集成開發(fā)環(huán)境;另一方面,它提供了一些C++類庫,其中最具影響力的當然是MFC。隨著VisualC++的發(fā)展,MFC已經(jīng)不是VisualC++中唯一的類庫了,其他還有ATL、STL等。此外,VisualC++還融合了大量的開發(fā)工具,特別是與Internet相關的開發(fā)支持。最后,本書也介紹了VisualC++對.NET的支持??傮w而言,本書涵蓋了當前最新的VisualC++的主流技術,既有對老技術的繼承和更新,也有對新技術的精辟闡述。所以,閱讀本書可以全面拓寬讀者的知識面。從這層意義上講,本書相當于VisualC++的百科全書,它濃縮了VisualC++的精華。本書面向中級VisualC++程序設計人員,并可以作為高年級計算機專業(yè)學生及軟件學院學生的程序設計教程。自2000年6月微軟宣布自己的.NET戰(zhàn)略以來,在不到兩年的時間里,.NET已經(jīng)從戰(zhàn)略變成現(xiàn)實。.NET帶來了全新的、快速而敏捷的企業(yè)計算能力,也給軟件開發(fā)商和軟件開發(fā)人員提供了支持未來計算的高效Web服務開發(fā)工具。作為微軟.NET戰(zhàn)略的重要組成部分:VisualStudio.NET(中文版)已經(jīng)于2002年3月22日正式在中國推出。VisualStudio.NET是一個功能強大、高效并且可擴展的編程環(huán)境。它充分展現(xiàn)了應用程序開發(fā)的潛能,并提供了生成應用程序所需的工具和技術。這些應用程序將給當今的企業(yè)、機構提供強大的支持,并推動下一代基于XMLWeb服務軟件的發(fā)展。有了VisualStudio.NET,那些對全世界數(shù)百萬的專業(yè)和業(yè)余程序員來說曾一度極端復雜、費時費力,甚至讓人望而生畏的編程任務現(xiàn)在已不再神秘。更重要的是,VisualStudio.NET使開發(fā)人員能運用既有的技能和知識來迎接新的編程挑戰(zhàn)。在10年前,VisualBasic1.0成為數(shù)以百萬計的開發(fā)人員的革命性的應用程序開發(fā)語言?,F(xiàn)在,VisualStudio.NET為未來的10年做好了準備。微軟出版社為了配合VisualStudio.NET的推廣以及.NET技術的普及,邀請VisualStudio.NET項目開發(fā)組的核心開發(fā)人員和計算機圖書專業(yè)作家精心編寫了英文版《微軟.NET程序員系列》叢書;該叢書自面市以來,在美國圖書銷量排行榜上一直高居前列,頗受好評,成為程序開發(fā)人員和網(wǎng)絡開發(fā)人員了解.NET技術的權威工具書。尤其是《Microsoft.NETFramework程序設計》一書,長期占據(jù)美國及歐洲此類書籍的排行榜冠軍位置,程序開發(fā)人員不可不讀此書。清華大學出版社為了滿足中國廣大程序開發(fā)人員、網(wǎng)絡開發(fā)人員學習最新技術的渴望,在微軟出版社的配合下,從《微軟.NET程序員系列》這套叢書中精選了40本50余本翻譯成中文,以滿足國內廣大讀者的需要。這套叢書陣容龐大且在不斷擴充之中,幾乎涵蓋了.NET技術及其應用的各個方面;也正因為如此,翻譯和編輯加工的工作量也大得驚人。但為了保持國外優(yōu)秀技術圖書的魅力,同時使讀者領會新技術的真諦,本叢書的翻譯和編輯都是經(jīng)過嚴格篩選的、具有很高的翻譯水平或豐富編輯經(jīng)驗的技術人員;另外,我們還聘請微軟公司VisualStudio.NET產品組的技術專家審讀每一本書,確保在技術上準確無誤。相信這套叢書定會幫助程序開發(fā)人員、網(wǎng)絡開發(fā)人員以及那些具有一定編程基礎的中、高級讀者,快速、全面地掌握.NET技術,協(xié)助他們?yōu)榧夹g生涯的下一個10年做好準備,為培養(yǎng)新一代軟件人才,并推動中國軟件產業(yè)的快速發(fā)展起到積極的作用!譯序終于可以松一口氣了,翻譯一本上千頁的圖書實在是一個不小的工程。想起五年之前我第一次翻譯計算機圖書(本書的第四版)的時候,期望借這本書將自己的編程知識總結和回顧一下。時隔五年之后再翻譯第六版,算?墻サ謀喑嘆橛腫邢傅馗聰傲艘槐?,栽柇覡秤懶,有写夃地方又唤迄O說背趺鱒isualC++和MFC時的那種感覺,因為那時摸索得來的經(jīng)驗與本書中的許多內容不謀而合,所以,每每碰到這種地方,總是感覺特別親切,作為C++程序員的那種掌控一切的豪情油然而生,也真切地希望每一個VisualC++程序員都能夠掌握這些技術,并享受這種因知識和技術而帶來的人生體驗和樂趣。當然,除了懷舊之外,本書中新增的內容又讓我手心發(fā)癢,恨不得回到程序員的角色之中,利用這些新的技術(特別是.NET和Internet部分)做一個實實在在的項目。一本講解技術的書能夠將譯者和讀者的情緒帶動起來,并且讓他(們)產生親近技術的欲望,這恐怕正是本書的魅力所在吧。這幾年來,關于VisualC++的書籍多如牛毛,但這本書一直占據(jù)著最重要的地位,我有幸翻譯了本書的兩個重要版本,所以借第六版中文版出版之際,談談我對本書的一些體會,算是譯序吧。一、本書與VisualC++的發(fā)展歷程了解本書歷史的讀者都知道,本書的開創(chuàng)者DavidKruglinski在完成了第四版之后因為事故身亡,以后的版本是別人續(xù)寫的。其中,第六版是由GeorgeShepherd(MFCInternals的作者)續(xù)寫的,以George對于MFC和VisualC++的理解深度,以及他的寫作經(jīng)驗和教學經(jīng)驗,新版本只會增色而不會遜色。相信讀者在讀過這本書之后能夠體會到這一點。在我手上,除了英文第六版之外,還有本書的第二版(中文版)、第四版(中文版和英文版)。書很沉,很有分量,拿在手里沉甸甸的,當然更重的是內容。關于本書具體的內容請讀者參看本書的目錄或者引言部分。這里我想說明我對本書技術傾向的看法。VisualC++開發(fā)環(huán)境包含哪些內容呢?這是被很多人誤解的一個問題。有人把MFC和VisualC++等同起來,也有人把VisualC++和C++混淆起來,實際上,它們都有明確的分界線,在軟件開發(fā)過程中,它們有各自的含義和用途。VisualC++一方面是一個C++實現(xiàn),它提供了一個功能強大的集成開發(fā)環(huán)境;另一方面,它提供了一些C++類庫,其中最具影響力的當然是MFC。隨著VisualC++的發(fā)展,MFC已經(jīng)不是VisualC++中唯一的類庫了,其他還有ATL、STL等。此外,VisualC++還融合了大量的開發(fā)工具,特別是與Internet相關的開發(fā)支持。本書幾乎涵蓋了所有這些內容,所以,閱讀本書可以拓寬知識面。從這層意義上講,本書相當于VisualC++的百科全書,它濃縮了VisualC++的精華。MicrosoftVisualC++的版本更新基本上反映了這10年來Windows平臺上軟件技術的發(fā)展歷程。在VisualC++5.0版本之前,一切變化都在伴隨著MFC的成熟與壯大,在此期間VisualC++主要用于開發(fā)桌面應用程序。到5.0版本之后,MFC已經(jīng)不再是發(fā)展的重點,整體的發(fā)展呈多元化趨勢,先是COM技術的普及,然后是Internet和Web開發(fā)技術的不斷深入,最新版本中又引入了.NET框架的支持。本書的發(fā)展歷程也反映了VisualC++的技術路線。在本書第四版(對應于VisualC++5.0)出版的時候,桌面應用技術已經(jīng)非常成熟,MFC結構完全定型,同時COM技術在Internet應用中大行其道,由此產生了一批Active技術,包括ActiveX控件、ASP、ADO、ActiveDocument等。在第四版中我們可以看到關于這些技術的講解。(第五版又引入了ATL相關的一些內容。)現(xiàn)在呢,最大的變化,也是最激動人心的變化應該是.NET架構的引入,當然也隨之帶來了一大批新的技術。從長遠的發(fā)展來看,.NET必將取代現(xiàn)有的大量應用技術,但不是所有,另一方面,新的技術和老的技術將會共存相當長的時間。本書第六版基本上反映了現(xiàn)在的技術發(fā)展狀況,MFC仍然存在,但是一些新興的用戶界面元素也被更新到MFC中。并且,本書也全面地討論了COM和相關的開發(fā)支持,包括MFC和ATL對于COM的支持,這是目前仍然非常實用的兩項技術。本書還討論了針對Internet的程序設計技術,包括MFC對于Winsock和WinInet的支持,以及DHTML和ATLServer等。最后,本書也介紹了VisualC++對于.NET的支持,其中包括托管的C++以及如何用托管的C++來開發(fā)WindowsForms、ASP.NET和ADO.NET應用程序。本書所有這些內容涵蓋了當前的主流技術,既有對老技術的繼承和更新,又有對新技術的精辟闡述,所以,通過這本書你可以全面地學習到這些實用開發(fā)技術。二、本書特色和新增內容雖然這是一本再版的書,并且有差不多三分之二的內容與以前的版本(這里主要指第四版)相同,但是,它仍然有自己的特色以及新增的豐富內容。本書的敘述風格基本上沒有變化,仍然按照以前的模式,既有原理性的說明,也有指導性的介紹,還有很好的例子來幫助理解一些技術細節(jié)。并且,本書在講解的時候也不啰嗦,與以前的版本相比,本書的內容增加了不少,但是篇幅基本上沒有明顯的增加。作者對于前面部分的傳統(tǒng)內容有所精簡,以便為后面的內容騰出空間。本書新增的內容可以分幾個方面來看:1.本書的前三部分內容主要針對桌面應用程序的開發(fā),這既是MFC的傳統(tǒng)優(yōu)勢,也是本書的傳統(tǒng)優(yōu)勢。我們應該可以感受得到,這幾年桌面應用技術還是有了一些變化的,特別是隨著Windows2000/XP的推?觶瘓」躆FC的基本框架保持不變,但是在許多細微之處還是有了許多新增的界面元素,例如,除了SDI和MDI之外,Windows2000又引入了一種新的界面風格:多頂級窗口界面(MTI)。而且InternetExplorer的新版本更是引入了許多新的UI元素,包括一些擴展的控件,以及Rebar等。VisualC++.NET為這些新的特性提供了支持,本書也介紹了相應的編程技術。2.本書第四部分介紹了COM、自動化、ActiveX和OLE。COM是一項底層的組件技術,這部分介紹了COM的原理,以及MFC和ATL提供的最基本的支持。要想在不到300頁的篇幅中全面地介紹所有這些技術是不可能的,但是本書這一部分中,不僅成功地敘述了這些基本知識,同時還介紹了幾項關鍵應用技術,包括自動化、統(tǒng)一數(shù)據(jù)傳輸、用ATL來開發(fā)ActiveX控件,以及用OLEDB模板來開發(fā)OLEDB使用者和OLEDB提供者。值得一提的是,除了傳統(tǒng)的C++編程之外,VisualC++.NET還引入了一種新的編程模式,被稱為屬性化的編程,用于支持COM組件的開發(fā),它的基本思想是,允許C++類直接引用COM類和COM接口的一些屬性,由編譯器來解釋這些屬性并產生必要的代碼,從而減輕了程序員在開發(fā)COM組件過程中一些不必要的負擔。3.Internet開發(fā)是一個不可錯過的部分。本書第五部分在介紹MFC對Winsock和WinInet支持的基礎上,又介紹了動態(tài)HTML和ATLServer。請讀者不要將ATLServer與COM聯(lián)系起來,實際上,ATLServer主要是針對IIS的一個開發(fā)工具,它被用來支持對于IIS服務器的擴展。4.最后一部分介紹Microsoft.NET程序設計。這是本書完全新增的內容,雖然.NET的標準語言應該是C#,但是VisualC++.NET也提供了全面的支持,它是通過擴展標準C++而實現(xiàn)的,被稱為托管的C++。被托管的代碼將運行在.NET的公共語言運行時庫之上,這是對組件技術的新發(fā)展,它使得應用程序運行在一個更加完善的管理環(huán)境之中,底層大量的設施可以被直接使用,并且軟件的發(fā)布和協(xié)作將更加理想。對于開發(fā)人員呢,負擔減輕了,他們可以更加關注于自己的應用,而無需為一些瑣碎的細節(jié)操心。這一部分首先介紹了.NET中最為核心的公共語言運行時庫,然后介紹了托管C++擴展,以及它的編程示例。最后用三章篇幅分別介紹了如何用托管C++來開發(fā)WindowsForms、ASP.NET和ADO.NET應用程序。三、如何使用本書面對一本涉及面如此廣闊的計算機程序設計圖書,我們該如何來使用呢?要想掌握書中每一項技術,不僅需要大量的時間,還需要扎實的基本功,但是,掌握這些技術對于把握現(xiàn)代軟件設計環(huán)境又非常有幫助。按照這本書的內容結構,讀者當然可以有所取舍,但是最好的做法是,首先按順序閱讀一遍,如果有可能的話,對于其中一些關鍵例子最好配合在機器上進行實戰(zhàn)練習。然后,對于感興趣的話題可以仔細鉆研,或者把這本書當作參考書,以后隨時翻閱。這本書講解的深度屬于中等程度,讀者最好有一些C++和Windows應用開發(fā)方面的基礎。對于書中講述的每一項技術,本書也只是起到基本的引導作用,如果讀者希望進一步深入鉆研的話,需要閱讀系統(tǒng)提供的源代碼或者查閱MSDNLibrary中的詳細講解。但是,通過這本書,你可以快速地領會每一項技術。因為這本書既有原理性的講解,也有示例說明,甚至還有一步一步的實戰(zhàn)過程。所以,本書也適合于被用作教材,可以針對研究生程序設計課程或者高年級本科生課程。我在本書剛剛出版之際,用本書作為北京大學軟件學院研究生課程''''程序開發(fā)環(huán)境分析與實踐''''的教材,取得了不錯的效果。曾經(jīng)聽人提到過,說這本書只是教會你怎么用向導工具來生成一個應用程序,離開了向導工具你還是什么也不會。這種觀點并不正確,我說過這本書是原理和實戰(zhàn)的結合,向導是提高開發(fā)效率的好幫手,但是如果你明白了原理,難道還會離不開向導嗎?難道會看不懂代碼嗎?我很贊成使用VisualC++提供的向導,但是一定要知道這些向導幫你做了哪些事情,這很重要,否則當向導不工作的時候,你就失控了。最后,我想說明一點,在翻譯本書時,本書中的屏幕拷貝圖以及VisualC++.NET集成環(huán)境中的一些稱謂(比如各種向導的叫法)我都保留了英文版本,而沒有將它們轉譯過來。國內的大多數(shù)程序員都會使用中文版的VisualStudio.NET,VisualStudio.NET中文版幾乎徹底地進行了漢化,所以,讀者在閱讀本書的時候也許會感到些微的不便。但是,本書在適當?shù)牡胤阶髁??喙氐乃得鰨嘈耪廡┲杏⑽牟鉅觳換嵊跋炷愕腦畝梁屠斫狻?在本書的翻譯過程中,我參照了第四版(中文版)的內容,發(fā)現(xiàn)了第四版中有不少錯誤,所幸的是,我這次還有機會把這些錯誤一一改正過來。同時也順帶著把原書中的一些錯誤也改正了。當然,翻譯過程中必定會帶來一些語言表達上的偏差,期望這些偏差不會影響您的閱讀。潘愛民2003年2月14日于北大燕園

作者簡介

  潘愛民中國大陸少有的資深技術作家、譯者。潘愛民,浙江海寧人,現(xiàn)任職于北京大學計算機科學技術研究所,研究方向為信息安全和軟件開發(fā)?!拔沂且幻胀ǖ某绦騿T,在軟件開發(fā)隊伍中算一名老兵了,以上所介紹的經(jīng)歷是我十幾年的路,走的路很長,但是沒有值得一提的成績。也許我的介紹中有一些偏頗之處,請大家不必挑刺,因為這只是我的一點感受,真實的感受,它所反映的僅僅是一個側面?!?>更多作品

圖書目錄

第Ⅰ部分  Windows、Visual C++ .NET和應用 程序框架基礎
第1章  Windows和Visual C++ .NET    
1.1  Windows編程模型    
1.1.1  消息處理    
1.1.2  Windows的圖形設備接口(GDI)    
1.1.3  基于資源的程序設計    
1.1.4  內存管理    
1.1.5  動態(tài)連接庫(DLL)    
1.1.6  Win32應用程序編程接口    
1.2  Visual C++ .NET的組成    
1.2.1  Visual C++ .NET和創(chuàng)建過程    
1.2.2  資源視圖窗口和資源編輯器    
1.2.3  C/C++編譯器    
1.2.4  源代碼編輯器    
1.2.5  資源編譯器    
1.2.6  連接器    
1.2.7  調試器    
1.2.8  MFC Application Wizard    
1.2.9  Class View    
1.2.10  方案管理器    
1.2.11  對象瀏覽器    
1.2.12  UML工具    
1.2.13  聯(lián)機幫助    
1.2.14  Windows診斷工具    
1.2.15  MFC庫版本7    
1.2.16  ATL庫版本7.0    
1.2.17  .NET支持    
第2章  Microsoft基本類庫應用程序框架    
2.1  為什么要使用應用程序框架?    
2.1.1  學習曲線    
2.2  什么是應用程序框架?    
2.2.1  應用程序框架和類庫    
2.2.2  應用程序框架示例    
2.3  MFC庫消息映射    
2.4  文檔和視圖    
第Ⅱ部分  MFC基礎
第3章  從MFC Application Wizard開始學習    
3.1  什么是視圖    
3.2  MFC庫應用程序的類型    
3.3  MFC庫支持的用戶界面    
3.4  Ex03a:“不做任何事情”的應用程序    
3.5  CEx03aView視圖類    
3.6  在視圖窗口內繪圖:Windows GDI    
3.6.1  OnDraw成員函數(shù)    
3.6.2  Windows設備環(huán)境    
3.6.3  往Ex03a程序中添加繪制代碼    
3.7  資源編輯器簡介    
3.7.1  Ex03a.rc的內容    
3.7.2  運行對話框資源編輯器    
3.8  Win32 Debug目標和Win32 Release目標    
3.9  對預編譯頭文件的理解    
3.10  兩種方法運行程序    
第4章  Visual C++ .NET向導    
4.1  向導的類型    
4.2  向導是如何工作的    
4.3  創(chuàng)建一個向導    
4.4  創(chuàng)建一個“用托管C++來開發(fā)Web應用”的向導    
第5章  Windows消息映射    
5.1  獲取用戶輸入——消息映射函數(shù)    
5.1.1  消息映射    
5.1.2  保存視圖的狀態(tài):類的數(shù)據(jù)成員    
5.1.3  初始化視圖類數(shù)據(jù)成員    
5.1.4  使矩形區(qū)域無效的理論    
5.1.5  Windows的客戶區(qū)域    
5.1.6  判斷一個點是否在矩形內    
5.1.7  判斷一個點是否在橢圓內    
5.1.8  Ex05a示例程序    
5.1.9  對Ex05a使用Class View    
5.2  使用Windows映射模式    
5.2.1  MM_TEXT映射模式    
5.2.2  “固定比例”映射模式    
5.2.3  “可變比例”映射模式    
5.2.4  坐標轉換    
5.2.5  Ex05b示例程序——轉換到MM_HIMETRIC映射模式    
5.3  創(chuàng)建一個滾動視圖窗口    
5.3.1  窗口比您所見到的要大    
5.3.2  滾動條    
5.3.3  滾動方式的選擇    
5.3.4  OnInitialUpdate函數(shù)    
5.3.5  接收鍵盤輸入    
5.3.6  Ex05c示例程序:滾動    
5.4  使用其他Windows消息    
5.4.1  WM_CREATE消息    
5.4.2  WM_CLOSE消息    
5.4.3  WM_QUERYENDSESSION消息    
5.4.4  WM_DESTROY消息    
5.4.5  WM_NCDESTROY消息
第6章  經(jīng)典的GDI函數(shù)、字體和位圖    
6.1  設備環(huán)境類    
6.1.1  顯示設備環(huán)境類CClientDC和CWindowDC    
6.1.2  構造和析構CDC對象    
6.1.3  設備環(huán)境的狀態(tài)    
6.1.4  CPaintDC類    
6.2  GDI對象    
6.2.1  GDI對象的構造與析構    
6.2.2  跟蹤GDI對象    
6.2.3  庫存的GDI對象    
6.2.4  GDI選擇的有效期    
6.3  字體    
6.3.1  字體是GDI對象    
6.3.2  選擇字體    
6.3.3  打印字體    
6.3.4  顯示字體    
6.3.5  顯示器的邏輯英寸和物理英寸    
6.3.6  計算字符高度    
6.4  Ex06a示例程序    
6.4.1  Ex06a程序的組成元素    
6.5  Ex06b示例程序    
6.5.1  Ex06b程序的組成元素    
6.6  Ex06c示例程序——再次使用CScrollView    
6.6.1  Ex06c程序的組成元素    
6.6.2  CScrollView的SetScaleToFitSize模式    
6.6.3  在滾動視圖中使用邏輯twips映射模式    
6.7  位圖    
6.7.1  GDI位圖和與設備無關的位圖    
6.7.2  彩色位圖和單色位圖    
6.8  DIB和CDib類    
6.8.1  關于調色板編程的術語    
6.8.2  DIB、像素和顏色表    
6.8.3  BMP文件中DIB的結構    
6.8.4  DIB訪問函數(shù)    
6.8.5  CDib類    
6.8.6  DIB顯示性能    
6.8.7  Ex06d示例程序    
6.9  進一步使用DIB    
6.9.1  LoadImage函數(shù)    
6.9.2  DrawDibDraw函數(shù)    
6.10  在按鈕上放置位圖    
6.10.1  Ex06e示例程序    
6.10.2  進一步使用位圖按鈕    
第7章  對話框    
7.1  模式和無模式對話框    
7.2  資源和控件    
7.3  模式對話框的編程    
7.4  包羅萬象的對話框——Ex07a示例程序    
7.4.1  創(chuàng)建對話框資源    
7.4.2  創(chuàng)建對話框類    
7.4.3  將對話框與視圖相連接    
7.4.4  深入理解Ex07a應用程序    
7.5  Ex07a應用程序的改進    
7.5.1  控制OnOK退出過程    
7.5.2  OnCancel處理    
7.5.3  和滾動條控件掛上鉤    
7.6  控件的標識:CWnd指針和控件ID    
7.7  設置對話框的背景色和其中控件的顏色    
7.8  在運行時加入對話框控件    
7.9  利用其他的控件特性    
7.10  Windows通用對話框    
7.10.1  直接使用CFileDialog類    
7.10.2  從通用對話框類進行派生    
7.10.3  嵌套對話框    
7.10.4  Ex07b示例程序:CFileDialog    
7.10.5  CFileDialog的其他可定制特性    
7.11  無模式對話框的編程    
7.11.1  創(chuàng)建無模式對話框    
7.11.2  用戶定義的消息    
7.11.3  對話框的所有關系(Ownership)    
7.11.4  Ex07c示例程序:無模式對話框    
第8章  通用控件    
8.1  標準通用控件    
8.1.1  進度指示器控件(Progress Control)    
8.1.2  滑塊控件(Slider Control)    
8.1.3  微調控件(Spin Control)    
8.1.4  列表控件    
8.1.5  樹狀控件    
8.1.6  WM_NOTIFY消息    
8.2  Ex08a示例程序:標準通用控件    
8.3  高級通用控件    
8.3.1  日期時間選擇器    
8.3.2  月歷控件    
8.3.3  IP地址控件    
8.3.4  擴展的組合框控件    
8.4  Ex08b示例程序:高級通用控件    
第9章  使用ActiveX控件    
9.1  ActiveX控件和普通的Windows控件    
9.1.1  普通的Windows控件:一個參考框架    
9.1.2  ActiveX控件與普通控件的相同點    
9.1.3  ActiveX控件與普通控件的不同點:屬性和方法    
9.2  安裝ActiveX控件    
9.3  日 歷 控 件    
9.4  ActiveX控件包容器編程    
9.4.1  屬性訪問    
9.4.2  Visual Studio .NET為ActiveX控件產生的C++包裝類    
9.4.3  MFC Application Wizard對ActiveX控件的支持    
9.4.4  Add Class Wizard和包容器對話框    
9.4.5  把ActiveX控件鎖定在內存里    
9.5  Ex09a示例程序:ActiveX控件對話框包容器    
9.6  ActiveX控件在HTML文件中的使用    
9.7  在運行時創(chuàng)建ActiveX控件    
9.8  Ex09b示例程序:Web瀏覽器ActiveX控件    
9.9  圖 形 屬 性    
9.10  可綁定的屬性:變化通知    
第10章  Win32核心內存管理    
10.1  進程和內存空間    
10.1.1  Windows 95/98進程地址空間    
10.1.2  Windows NT/2000/XP的進程地址空間    
10.2  虛擬內存如何工作    
10.3  VirtualAlloc函數(shù)——占用和保留內存    
10.4  Windows堆和GlobalAlloc函數(shù)族    
10.5  小內存堆,C++的new和delete操作符,_heapmin    
10.6  內存映射文件    
10.7  訪 問 資 源    
10.8  管理動態(tài)內存的一些提示    
10.9  常量數(shù)據(jù)的優(yōu)化存儲
    
第11章  Windows消息處理和多線程編程    
11.1  Windows消息處理    
11.1.1  單線程程序處理消息的過程    
11.1.2  交出控制    
11.1.3  計時器    
11.1.4  Ex11a示例程序    
11.2  空狀態(tài)處理    
11.3  多線程編程    
11.3.1  編寫輔助線程函數(shù)和啟動線程    
11.3.2  主線程如何與輔助線程通話    
11.3.3  輔助線程如何與主線程通話    
11.3.4  Ex11b示例程序    
11.3.5  用事件使線程同步    
11.3.6  Ex11c示例程序    
11.3.7  線程阻塞    
11.3.8  臨界區(qū)    
11.3.9  互斥體(mutex)和信號(semaphore)    
11.3.10  用戶界面線程(UI線程)    
第Ⅲ部分  MFC的文檔-視圖結構
第12章  菜單、鍵盤加速鍵、復文本編輯控件和屬性表    
12.1  主框架窗口和文檔類    
12.2  Windows菜單    
12.3  鍵盤加速鍵    
12.4  命 令 處 理    
12.4.1  派生類中的命令消息控制    
12.4.2  更新命令用戶界面消息控制函數(shù)    
12.4.4  對話框發(fā)送的命令    
12.5  應用程序框架的內置菜單命令    
12.5.1  菜單命令的允許/禁用    
12.6  MFC文本編輯選擇    
12.6.1  CEditView類    
12.6.2  CRichEditView類    
12.6.3  CRichEditCtrl類    
12.7  Ex12a示例程序    
12.8  屬  性  表    
12.8.1  創(chuàng)建屬性表    
12.8.2 屬性表數(shù)據(jù)交換    
12.9  改進Ex12a示例程序    
12.9.1  Apply按鈕的處理過程    
12.10  CMenu類    
12.11  創(chuàng)建浮動的快捷菜單    
12.12  擴展的命令處理    
第13章  工具欄和狀態(tài)欄    
13.1  控制欄和應用程序框架    
13.2  工  具  欄    
13.2.1  工具欄位圖    
13.2.2  工具欄按鈕的狀態(tài)    
13.2.3  工具欄和命令消息    
13.2.4  工具欄更新命令UI消息控制函數(shù)    
13.3  工 具 提 示    
13.4  獲得主框架窗口    
13.5  Ex13a示例程序:使用工具欄    
13.6  狀  態(tài)  欄    
13.6.1  狀態(tài)欄的定義    
13.6.2  信息行    
13.6.3  狀態(tài)指示器    
13.6.4  對狀態(tài)欄的控制    
13.7  Ex13b示例程序:使用狀態(tài)欄    
13.8  Rebar    
13.8.1  解剖一個rebar    
13.9  Ex13c示例程序:使用rebar    
第14章  可重用的框架窗口基類    
14.1  為什么可重用基類難以設計    
14.2  CPersistentFrame類    
14.3  CFrameWnd::ActivateFrame成員函數(shù)    
14.4  PreCreateWindow成員函數(shù)    
14.5  Windows注冊表    
14.6  使用CString類    
14.7  最大化窗口的位置    
14.8  控制欄狀態(tài)和注冊表    
14.9  靜態(tài)數(shù)據(jù)成員    
14.10  默認窗口矩形    
14.11  Ex14a示例程序:使用持續(xù)框架窗口類    
14.12  MDI應用程序中的持續(xù)框架
第15章  文檔與視圖的分離    
15.1  文檔-視圖之間的相互作用函數(shù)    
15.1.1  CView∷GetDocument函數(shù)    
15.1.2  CDocument∷UpdateAllViews函數(shù)    
15.1.3  CView∷OnUpdate函數(shù)    
15.1.4  CView∷OnInitialUpdate函數(shù)    
15.1.5  CDocument∷OnNewDocument函數(shù)    
15.2  最簡單的文檔-視圖應用程序    
15.3  CFormView類    
15.4  CObject 類    
15.5  診斷信息轉儲    
15.5.1  TRACE宏    
15.5.2  afxDump對象    
15.5.3  信息轉儲環(huán)境及CObject類    
15.5.4  未被刪除對象的自動信息轉儲    
15.6  Ex15a示例程序:簡單的文檔-視圖交互    
15.7  更加高級的文檔-視圖交互    
15.8  CDocument∷DeleteContents函數(shù)    
15.9  CObList集合類    
15.9.1  對先入先出列表使用CObList類    
15.9.2  在CObList中進行迭代——POSITION變量    
15.9.3  CTypedPtrList模板集合類    
15.9.4  信息轉儲環(huán)境及集合類    
15.10  Ex15b示例程序:一個多視圖SDI應用程序    
15.10.1  資源要求    
15.10.2  代碼要求    
15.10.3  保護類型的虛函數(shù)    
15.10.4  測試Ex15b應用程序    
15.11  留給讀者的兩個練習    
第16章  讀和寫文檔    
16.1  什么是序列化    
16.1.1  磁盤文件和歸檔 (Archives)    
16.1.2  使一個類可序列化    
16.1.3  編寫Serialize函數(shù)    
16.1.4  從歸檔中載入:內嵌對象和指針    
16.1.5  使集合序列化    
16.1.6  Serialize函數(shù)和應用程序框架    
16.2  SDI應用程序    
16.2.1  Windows應用程序對象    
16.2.2  文檔模板類    
16.2.3  文檔模板資源    
16.2.4  SDI文檔的多視圖    
16.2.5  創(chuàng)建空文檔:CWinApp∷OnFileNew函數(shù)    
16.2.6  文檔類的OnNewDocument函數(shù)    
16.2.7  連接File Open與序列化代碼:OnFileOpen函數(shù)    
16.2.8  文檔類的DeleteContents函數(shù)    
16.2.9  將File Save和File Save As與序列化代碼相連接    
16.2.10  文檔的“臟”標志    
16.3  Ex16a示例程序:支持序列化的SDI程序    
16.3.1  CStudent    
16.3.2  CEx16aApp    
16.3.3  CMainFrame    
16.3.4  CEx16aDoc類    
16.3.5  CEx16aView類    
16.3.6  測試Ex16a應用程序    
16.4  從Windows資源管理器啟動及拖放    
16.4.1  程序注冊    
16.4.2  在文檔上雙擊鼠標    
16.4.3  允許拖放    
16.4.4  程序啟動參數(shù)    
16.4.5  試驗用Windows資源管理器啟動程序及拖放    
16.5  MDI支持    
16.5.1  一個典型的具有MFC風格的MDI應用程序    
16.5.2  MDI應用程序對象    
16.5.3  MDI文檔模板類    
16.5.4  MDI框架窗口和MDI子窗口    
16.5.5  主框架和文檔模板資源    
16.5.6  創(chuàng)建空文檔    
16.5.7  為已有的文檔創(chuàng)建新的視圖    
16.5.8  載入和存儲文檔    
16.5.9  多文檔模板    
16.5.10  從Windows資源管理器啟動及拖放    
16.6  Ex16b示例程序:MDI應用程序    
16.6.1  CEx16bApp    
16.6.2  CMainFrame    
16.6.3  CChildFrame    
16.6.4  測試Ex16b應用程序    
16.7  MTI支持    
16.8  Ex16c示例程序:MTI應用程序    
16.8.1  測試Ex16c應用程序    
第17章  打印和打印預覽    
17.1  基于Windows的打印    
17.1.1  標準打印對話框    
17.1.2  交互選擇打印頁碼    
17.1.3  顯示頁和打印頁    
17.2  打 印 預 覽    
17.3  打印機的程序設計    
17.3.1  打印機設備環(huán)境和CView::OnDraw函數(shù)    
17.3.2  CView::OnPrint函數(shù)    
17.3.3  準備設備環(huán)境:CView::OnPrepareDC函數(shù)    
17.3.4  打印任務的開始和結束    
17.4  Ex17a示例程序:一個所見即所得的打印程序    
17.4.1  讀取打印機矩形框    
17.5  再看模板集合類:CArray類    
17.6  Ex17b示例程序:多頁打印程序
    
第18章  切分窗口和多視圖    
18.1  切 分 窗 口    
18.2  關于視圖的選擇    
18.3  動態(tài)和靜態(tài)切分窗口    
18.4  Ex18a示例程序:具有單個視圖類的SDI動態(tài)切分    
18.4.1  與切分有關的資源    
18.4.2  CMainFrame
18.4.3  測試Ex18a應用程序    
18.5  Ex18b示例程序:雙視圖類SDI靜態(tài)切分    
18.5.1  CHexView    
18.5.2  CMainFrame    
18.5.3  測試Ex18b應用程序    
18.6  Ex18c示例程序:切換視圖類但不用切分窗口    
18.6.1  資源要求    
18.6.2  CMainFrame    
18.6.3  測試Ex18c應用程序    
18.7  Ex18d示例程序:多視圖類MDI應用程序    
18.7.1  資源要求    
18.7.2  CEx18dApp    
18.7.3  CMainFrame    
18.7.4  測試Ex18d應用程序    
第19章  上下文相關幫助    
19.1  WinHelp和HTML Help    
19.2  Windows的WinHelp程序    
19.2.1  復文本格式(RTF)    
19.2.2  編寫簡單的幫助文件    
19.2.3  改進的目錄    
19.3  應用程序框架與WinHelp    
19.3.1  調用WinHelp    
19.3.2  使用搜索字符串    
19.3.3  從應用程序的菜單來調用WinHelp    
19.3.4  幫助上下文別名    
19.3.5  確定幫助上下文    
19.3.6  F1幫助    
19.3.7  Shift+F1 幫助    
19.3.8  消息框幫助:AfxMessageBox函數(shù)    
19.3.9  一般的幫助    
19.4  幫助示例:不需要任何編程    
19.5  幫助命令處理    
19.5.1  F1處理過程    
19.5.2  Shift+F1處理過程    
19.6  Ex19b示例程序:幫助命令處理    
19.6.1  頭文件要求    
19.6.2  CStringView    
19.6.3  CHexView    
19.6.4  資源要求    
19.6.5  幫助文件要求    
19.6.6  測試Ex19b應用程序    
19.7  MFC和HTML Help    
19.8  Ex19c示例程序:HTML Help    
第20章  動態(tài)鏈接庫    
20.1  基本DLL理論    
20.1.1  導入如何與導出相匹配    
20.1.2  隱式鏈接和顯式鏈接    
20.1.3  符號鏈接和序號鏈接    
20.1.4  DLL入口點:DllMain    
20.1.5  實例句柄:裝載資源    
20.1.6  客戶程序如何找到DLL    
20.1.7  調試DLL    
20.2  MFC DLL:擴展的和常規(guī)的    
20.2.1  MFC擴展DLL:導出類    
20.2.2  MFC擴展DLL的資源搜索序列    
20.2.3  Ex20a示例程序:MFC擴展DLL    
20.2.4  Ex20b示例程序:DLL測試客戶程序    
20.2.5  MFC常規(guī)DLL:AFX_EXTENSION_MODULE結構    
20.2.6  使用AFX_MANAGE_STATE宏    
20.2.7  MFC常規(guī)DLL的資源搜索序列    
20.2.8  Ex20c示例程序:MFC常規(guī)DLL    
20.2.9  修改Ex20b示例程序:加入代碼以測試Ex20c.dll    
20.3  自定義控件DLL    
20.3.1  什么是自定義控件    
20.3.2  自定義控件的窗口類    
20.3.3  MFC庫和WndProc函數(shù)    
20.3.4  自定義控件的通知消息    
20.3.5  發(fā)送給控件的用戶定義消息    
20.3.6  Ex20d示例程序:自定義控件    
20.3.7  再修改Ex20b示例程序:加入代碼以測試Ex20d.dll    
第21章  不帶文檔或視圖類的MFC程序    
21.1  Ex21a示例程序:一個基于對話框的應用程序    
21.1.1  應用程序類的InitInstance函數(shù)    
21.1.2  對話框類和程序圖標    
21.2 Ex21b示例程序:一個SDI應用程序    
21.3  Ex21c示例程序:一個MDI應用程序    
第四部分 COM、自動化、ActiveX和OLE    
第22章 組件對象模型    
22.1 ActiveX技術    
22.2 什么是COM    
22.3 Ex22a示例程序:一個模擬的COM    
22.4 MFC庫中實際的COM    
22.5 Ex22b示例程序:MFC COM進程內組件    
22.6 Ex22c示例程序:MFC COM客戶    
22.7 包容、聚合和繼承    
第23章 自動化    
23.1 為VBA創(chuàng)建C++組件    
23.2 自動化客戶和自動化組件    
23.3自動化接口    
23.4 自動化程序設計的選擇    
23.5 一個MFC自動化組件    
23.6 一個MFC自動化客戶程序
23.7 使用了編譯器的#import指令的自動化客戶程序    
23.8 VARIANT類型    
23.9 COleVariant類    
23.10自動化示例    
23.11 VBA早綁定    
第24章 統(tǒng)一數(shù)據(jù)傳輸:剪貼板傳輸以及OLE拖放    
24.1 IDataObject接口    
24.2 FORMATETC和STGMEDIUM結構    
24.3 MFC對UDT的支持    
24.4 MFC CRectTracker類    
24.5 Ex24a示例程序:數(shù)據(jù)對象剪貼板    
24.6 MFC的拖放    
24.7 Ex24b示例程序:OLE拖放    
第25章 活動模板庫介紹    
25.1再談COM    
25.2 編寫COM代碼    
25.3 COM基礎設施    
25.4 ATL簡介    
25.5 客戶端ATL程序設計    
25.6 服務器端ATL程序設計    
25.7 屬性化程序設計    
第26章 ATL和ActiveX控件    
26.1 什么是ActiveX控件    
26.2 用ATL編寫ActiveX控件    
26.3 創(chuàng)建一個屬性化的控件    
第27章 OLE DB模板    
27.1 為什么使用OLE DB    
27.2 OLE DB的基本結構    
27.3 OLE DB模板的基本結構
27.4 創(chuàng)建一個OLE DB使用者    
27.5 創(chuàng)建一個OLE DB提供者    
27.6 屬性化的OLE DB程序設計    
第五部分 Internet程序設計    
第28章 Internet基礎    
28.1 Internet入門    
28.2 建立一個Intranet    
28.3 Winsock程序設計    
28.4 用CHttpBlockingSocket建立一個Web服務器    
28.5 用CHttpBlockingSocket建立一個Web客戶    
28.6 WinInet    
28.7 用MFC WinInet類建立一個Web客戶    
28.8 異步Moniker文件    
第29章 動態(tài)HTML簡介    
29.1 DHTML對象模型    
29.2 Visual C++ .NET和DHTML    
29.3 Ex29a示例程序:MFC和DHTML    
29.3 Ex29b示例程序:DHTML和MFC    
29.4 Ex29c示例程序:ATL和DHTML    
29.5 進一步的信息    
第30章 ATL Server    
30.1 IIS    
30.2 ISAPI服務器擴展    
30.3 ATL Server簡介    
30.4 Ex30a示例程序:一個ATL Server Web站點    
第六部分 .NET和遠景    
第31章 Microsoft .NET    
31.1 Windows組件技術    
31.2 公共語言運行時庫    
第32章 托管C++    
32.1 公共語言運行時庫與C++開發(fā)人員    
32.2 為什么使用C++    
32.3 托管的C++擴展    
32.4 Visual C++ .NET和托管擴展    
32.5 Ex32a示例程序:一個托管C++ DLL程序集
32.6程序集的用法    
32.7 Ex32b示例程序:一個托管的客戶可執(zhí)行程序    
32.8 加入托管擴展支持    
第33章 用托管C++進行Windows Forms編程    
33.1 Windows Forms    
33.2 Windows Forms的不足    
第34章 用托管C++進行ASP.NET編程    
34.1 Internet作為開發(fā)平臺    
34.2 ASP.NET的演變    
34.3 IIS的作用    
34.4 ASP.NET的編譯模型    
34.5 Page類
34.6 HTTP傳遞路徑    
34.7 Web服務    
第35章 用托管C++進行ADO.NET編程    
35.1 托管的提供者    
35.2 使用托管提供者    
35.3 ADO.NET數(shù)據(jù)集    
附錄A MFC庫中的消息映射函數(shù)    
附錄B MFC庫運行時類識別和動態(tài)對象創(chuàng)建    
B.1 運行時獲取對象的類名    
B.2 MFC CRuntimeClass結構和RUNTIME_CLASS宏    
B.3 動態(tài)創(chuàng)建    
B.4 示例程序    

本目錄推薦

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