注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì).NETMicrosoft Visual C++ .NET技術(shù)內(nèi)幕

Microsoft Visual C++ .NET技術(shù)內(nèi)幕

Microsoft Visual C++ .NET技術(shù)內(nèi)幕

定 價:¥106.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

第Ⅰ部分  Windows、Visual C++ .NET和應(yīng)用 程序框架基礎(chǔ)
第1章  Windows和Visual C++ .NET    
1.1  Windows編程模型    
1.1.1  消息處理    
1.1.2  Windows的圖形設(shè)備接口(GDI)    
1.1.3  基于資源的程序設(shè)計(jì)    
1.1.4  內(nèi)存管理    
1.1.5  動態(tài)連接庫(DLL)    
1.1.6  Win32應(yīng)用程序編程接口    
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  調(diào)試器    
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)機(jī)幫助    
1.2.14  Windows診斷工具    
1.2.15  MFC庫版本7    
1.2.16  ATL庫版本7.0    
1.2.17  .NET支持    
第2章  Microsoft基本類庫應(yīng)用程序框架    
2.1  為什么要使用應(yīng)用程序框架?    
2.1.1  學(xué)習(xí)曲線    
2.2  什么是應(yīng)用程序框架?    
2.2.1  應(yīng)用程序框架和類庫    
2.2.2  應(yīng)用程序框架示例    
2.3  MFC庫消息映射    
2.4  文檔和視圖    
第Ⅱ部分  MFC基礎(chǔ)
第3章  從MFC Application Wizard開始學(xué)習(xí)    
3.1  什么是視圖    
3.2  MFC庫應(yīng)用程序的類型    
3.3  MFC庫支持的用戶界面    
3.4  Ex03a:“不做任何事情”的應(yīng)用程序    
3.5  CEx03aView視圖類    
3.6  在視圖窗口內(nèi)繪圖:Windows GDI    
3.6.1  OnDraw成員函數(shù)    
3.6.2  Windows設(shè)備環(huán)境    
3.6.3  往Ex03a程序中添加繪制代碼    
3.7  資源編輯器簡介    
3.7.1  Ex03a.rc的內(nèi)容    
3.7.2  運(yùn)行對話框資源編輯器    
3.8  Win32 Debug目標(biāo)和Win32 Release目標(biāo)    
3.9  對預(yù)編譯頭文件的理解    
3.10  兩種方法運(yùn)行程序    
第4章  Visual C++ .NET向?qū)?nbsp;   
4.1  向?qū)У念愋?nbsp;   
4.2  向?qū)侨绾喂ぷ鞯?nbsp;   
4.3  創(chuàng)建一個向?qū)?nbsp;   
4.4  創(chuàng)建一個“用托管C++來開發(fā)Web應(yīng)用”的向?qū)?nbsp;   
第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  判斷一個點(diǎn)是否在矩形內(nèi)    
5.1.7  判斷一個點(diǎn)是否在橢圓內(nèi)    
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  坐標(biāo)轉(zhuǎn)換    
5.2.5  Ex05b示例程序——轉(zhuǎn)換到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  設(shè)備環(huán)境類    
6.1.1  顯示設(shè)備環(huán)境類CClientDC和CWindowDC    
6.1.2  構(gòu)造和析構(gòu)CDC對象    
6.1.3  設(shè)備環(huán)境的狀態(tài)    
6.1.4  CPaintDC類    
6.2  GDI對象    
6.2.1  GDI對象的構(gòu)造與析構(gòu)    
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  計(jì)算字符高度    
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位圖和與設(shè)備無關(guān)的位圖    
6.7.2  彩色位圖和單色位圖    
6.8  DIB和CDib類    
6.8.1  關(guān)于調(diào)色板編程的術(shù)語    
6.8.2  DIB、像素和顏色表    
6.8.3  BMP文件中DIB的結(jié)構(gòu)    
6.8.4  DIB訪問函數(shù)    
6.8.5  CDib類    
6.8.6  DIB顯示性能    
6.8.7  Ex06d示例程序    
6.9  進(jìn)一步使用DIB    
6.9.1  LoadImage函數(shù)    
6.9.2  DrawDibDraw函數(shù)    
6.10  在按鈕上放置位圖    
6.10.1  Ex06e示例程序    
6.10.2  進(jìn)一步使用位圖按鈕    
第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應(yīng)用程序    
7.5  Ex07a應(yīng)用程序的改進(jìn)    
7.5.1  控制OnOK退出過程    
7.5.2  OnCancel處理    
7.5.3  和滾動條控件掛上鉤    
7.6  控件的標(biāo)識:CWnd指針和控件ID    
7.7  設(shè)置對話框的背景色和其中控件的顏色    
7.8  在運(yùn)行時加入對話框控件    
7.9  利用其他的控件特性    
7.10  Windows通用對話框    
7.10.1  直接使用CFileDialog類    
7.10.2  從通用對話框類進(jìn)行派生    
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  對話框的所有關(guān)系(Ownership)    
7.11.4  Ex07c示例程序:無模式對話框    
第8章  通用控件    
8.1  標(biāo)準(zhǔn)通用控件    
8.1.1  進(jìn)度指示器控件(Progress Control)    
8.1.2  滑塊控件(Slider Control)    
8.1.3  微調(diào)控件(Spin Control)    
8.1.4  列表控件    
8.1.5  樹狀控件    
8.1.6  WM_NOTIFY消息    
8.2  Ex08a示例程序:標(biāo)準(zhǔn)通用控件    
8.3  高級通用控件    
8.3.1  日期時間選擇器    
8.3.2  月歷控件    
8.3.3  IP地址控件    
8.3.4  擴(kuò)展的組合框控件    
8.4  Ex08b示例程序:高級通用控件    
第9章  使用ActiveX控件    
9.1  ActiveX控件和普通的Windows控件    
9.1.1  普通的Windows控件:一個參考框架    
9.1.2  ActiveX控件與普通控件的相同點(diǎn)    
9.1.3  ActiveX控件與普通控件的不同點(diǎn):屬性和方法    
9.2  安裝ActiveX控件    
9.3  日 歷 控 件    
9.4  ActiveX控件包容器編程    
9.4.1  屬性訪問    
9.4.2  Visual Studio .NET為ActiveX控件產(chǎn)生的C++包裝類    
9.4.3  MFC Application Wizard對ActiveX控件的支持    
9.4.4  Add Class Wizard和包容器對話框    
9.4.5  把ActiveX控件鎖定在內(nèi)存里    
9.5  Ex09a示例程序:ActiveX控件對話框包容器    
9.6  ActiveX控件在HTML文件中的使用    
9.7  在運(yùn)行時創(chuàng)建ActiveX控件    
9.8  Ex09b示例程序:Web瀏覽器ActiveX控件    
9.9  圖 形 屬 性    
9.10  可綁定的屬性:變化通知    
第10章  Win32核心內(nèi)存管理    
10.1  進(jìn)程和內(nèi)存空間    
10.1.1  Windows 95/98進(jìn)程地址空間    
10.1.2  Windows NT/2000/XP的進(jìn)程地址空間    
10.2  虛擬內(nèi)存如何工作    
10.3  VirtualAlloc函數(shù)——占用和保留內(nèi)存    
10.4  Windows堆和GlobalAlloc函數(shù)族    
10.5  小內(nèi)存堆,C++的new和delete操作符,_heapmin    
10.6  內(nèi)存映射文件    
10.7  訪 問 資 源    
10.8  管理動態(tài)內(nèi)存的一些提示    
10.9  常量數(shù)據(jù)的優(yōu)化存儲
    
第11章  Windows消息處理和多線程編程    
11.1  Windows消息處理    
11.1.1  單線程程序處理消息的過程    
11.1.2  交出控制    
11.1.3  計(jì)時器    
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的文檔-視圖結(jié)構(gòu)
第12章  菜單、鍵盤加速鍵、復(fù)文本編輯控件和屬性表    
12.1  主框架窗口和文檔類    
12.2  Windows菜單    
12.3  鍵盤加速鍵    
12.4  命 令 處 理    
12.4.1  派生類中的命令消息控制    
12.4.2  更新命令用戶界面消息控制函數(shù)    
12.4.4  對話框發(fā)送的命令    
12.5  應(yīng)用程序框架的內(nèi)置菜單命令    
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  改進(jìn)Ex12a示例程序    
12.9.1  Apply按鈕的處理過程    
12.10  CMenu類    
12.11  創(chuàng)建浮動的快捷菜單    
12.12  擴(kuò)展的命令處理    
第13章  工具欄和狀態(tài)欄    
13.1  控制欄和應(yīng)用程序框架    
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  為什么可重用基類難以設(shè)計(jì)    
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  默認(rèn)窗口矩形    
14.11  Ex14a示例程序:使用持續(xù)框架窗口類    
14.12  MDI應(yīng)用程序中的持續(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  最簡單的文檔-視圖應(yīng)用程序    
15.3  CFormView類    
15.4  CObject 類    
15.5  診斷信息轉(zhuǎn)儲    
15.5.1  TRACE宏    
15.5.2  afxDump對象    
15.5.3  信息轉(zhuǎn)儲環(huán)境及CObject類    
15.5.4  未被刪除對象的自動信息轉(zhuǎn)儲    
15.6  Ex15a示例程序:簡單的文檔-視圖交互    
15.7  更加高級的文檔-視圖交互    
15.8  CDocument∷DeleteContents函數(shù)    
15.9  CObList集合類    
15.9.1  對先入先出列表使用CObList類    
15.9.2  在CObList中進(jìn)行迭代——POSITION變量    
15.9.3  CTypedPtrList模板集合類    
15.9.4  信息轉(zhuǎn)儲環(huán)境及集合類    
15.10  Ex15b示例程序:一個多視圖SDI應(yīng)用程序    
15.10.1  資源要求    
15.10.2  代碼要求    
15.10.3  保護(hù)類型的虛函數(shù)    
15.10.4  測試Ex15b應(yīng)用程序    
15.11  留給讀者的兩個練習(xí)    
第16章  讀和寫文檔    
16.1  什么是序列化    
16.1.1  磁盤文件和歸檔 (Archives)    
16.1.2  使一個類可序列化    
16.1.3  編寫Serialize函數(shù)    
16.1.4  從歸檔中載入:內(nèi)嵌對象和指針    
16.1.5  使集合序列化    
16.1.6  Serialize函數(shù)和應(yīng)用程序框架    
16.2  SDI應(yīng)用程序    
16.2.1  Windows應(yīng)用程序?qū)ο?nbsp;   
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  文檔的“臟”標(biāo)志    
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應(yīng)用程序    
16.4  從Windows資源管理器啟動及拖放    
16.4.1  程序注冊    
16.4.2  在文檔上雙擊鼠標(biāo)    
16.4.3  允許拖放    
16.4.4  程序啟動參數(shù)    
16.4.5  試驗(yàn)用Windows資源管理器啟動程序及拖放    
16.5  MDI支持    
16.5.1  一個典型的具有MFC風(fēng)格的MDI應(yīng)用程序    
16.5.2  MDI應(yīng)用程序?qū)ο?nbsp;   
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應(yīng)用程序    
16.6.1  CEx16bApp    
16.6.2  CMainFrame    
16.6.3  CChildFrame    
16.6.4  測試Ex16b應(yīng)用程序    
16.7  MTI支持    
16.8  Ex16c示例程序:MTI應(yīng)用程序    
16.8.1  測試Ex16c應(yīng)用程序    
第17章  打印和打印預(yù)覽    
17.1  基于Windows的打印    
17.1.1  標(biāo)準(zhǔn)打印對話框    
17.1.2  交互選擇打印頁碼    
17.1.3  顯示頁和打印頁    
17.2  打 印 預(yù) 覽    
17.3  打印機(jī)的程序設(shè)計(jì)    
17.3.1  打印機(jī)設(shè)備環(huán)境和CView::OnDraw函數(shù)    
17.3.2  CView::OnPrint函數(shù)    
17.3.3  準(zhǔn)備設(shè)備環(huán)境:CView::OnPrepareDC函數(shù)    
17.3.4  打印任務(wù)的開始和結(jié)束    
17.4  Ex17a示例程序:一個所見即所得的打印程序    
17.4.1  讀取打印機(jī)矩形框    
17.5  再看模板集合類:CArray類    
17.6  Ex17b示例程序:多頁打印程序
    
第18章  切分窗口和多視圖    
18.1  切 分 窗 口    
18.2  關(guān)于視圖的選擇    
18.3  動態(tài)和靜態(tài)切分窗口    
18.4  Ex18a示例程序:具有單個視圖類的SDI動態(tài)切分    
18.4.1  與切分有關(guān)的資源    
18.4.2  CMainFrame
18.4.3  測試Ex18a應(yīng)用程序    
18.5  Ex18b示例程序:雙視圖類SDI靜態(tài)切分    
18.5.1  CHexView    
18.5.2  CMainFrame    
18.5.3  測試Ex18b應(yīng)用程序    
18.6  Ex18c示例程序:切換視圖類但不用切分窗口    
18.6.1  資源要求    
18.6.2  CMainFrame    
18.6.3  測試Ex18c應(yīng)用程序    
18.7  Ex18d示例程序:多視圖類MDI應(yīng)用程序    
18.7.1  資源要求    
18.7.2  CEx18dApp    
18.7.3  CMainFrame    
18.7.4  測試Ex18d應(yīng)用程序    
第19章  上下文相關(guān)幫助    
19.1  WinHelp和HTML Help    
19.2  Windows的WinHelp程序    
19.2.1  復(fù)文本格式(RTF)    
19.2.2  編寫簡單的幫助文件    
19.2.3  改進(jìn)的目錄    
19.3  應(yīng)用程序框架與WinHelp    
19.3.1  調(diào)用WinHelp    
19.3.2  使用搜索字符串    
19.3.3  從應(yīng)用程序的菜單來調(diào)用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應(yīng)用程序    
19.7  MFC和HTML Help    
19.8  Ex19c示例程序:HTML Help    
第20章  動態(tài)鏈接庫    
20.1  基本DLL理論    
20.1.1  導(dǎo)入如何與導(dǎo)出相匹配    
20.1.2  隱式鏈接和顯式鏈接    
20.1.3  符號鏈接和序號鏈接    
20.1.4  DLL入口點(diǎn):DllMain    
20.1.5  實(shí)例句柄:裝載資源    
20.1.6  客戶程序如何找到DLL    
20.1.7  調(diào)試DLL    
20.2  MFC DLL:擴(kuò)展的和常規(guī)的    
20.2.1  MFC擴(kuò)展DLL:導(dǎo)出類    
20.2.2  MFC擴(kuò)展DLL的資源搜索序列    
20.2.3  Ex20a示例程序:MFC擴(kuò)展DLL    
20.2.4  Ex20b示例程序:DLL測試客戶程序    
20.2.5  MFC常規(guī)DLL:AFX_EXTENSION_MODULE結(jié)構(gòu)    
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示例程序:一個基于對話框的應(yīng)用程序    
21.1.1  應(yīng)用程序類的InitInstance函數(shù)    
21.1.2  對話框類和程序圖標(biāo)    
21.2 Ex21b示例程序:一個SDI應(yīng)用程序    
21.3  Ex21c示例程序:一個MDI應(yīng)用程序    
第四部分 COM、自動化、ActiveX和OLE    
第22章 組件對象模型    
22.1 ActiveX技術(shù)    
22.2 什么是COM    
22.3 Ex22a示例程序:一個模擬的COM    
22.4 MFC庫中實(shí)際的COM    
22.5 Ex22b示例程序:MFC COM進(jìn)程內(nèi)組件    
22.6 Ex22c示例程序:MFC COM客戶    
22.7 包容、聚合和繼承    
第23章 自動化    
23.1 為VBA創(chuàng)建C++組件    
23.2 自動化客戶和自動化組件    
23.3自動化接口    
23.4 自動化程序設(shè)計(jì)的選擇    
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結(jié)構(gòu)    
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基礎(chǔ)設(shè)施    
25.4 ATL簡介    
25.5 客戶端ATL程序設(shè)計(jì)    
25.6 服務(wù)器端ATL程序設(shè)計(jì)    
25.7 屬性化程序設(shè)計(jì)    
第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的基本結(jié)構(gòu)    
27.3 OLE DB模板的基本結(jié)構(gòu)
27.4 創(chuàng)建一個OLE DB使用者    
27.5 創(chuàng)建一個OLE DB提供者    
27.6 屬性化的OLE DB程序設(shè)計(jì)    
第五部分 Internet程序設(shè)計(jì)    
第28章 Internet基礎(chǔ)    
28.1 Internet入門    
28.2 建立一個Intranet    
28.3 Winsock程序設(shè)計(jì)    
28.4 用CHttpBlockingSocket建立一個Web服務(wù)器    
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 進(jìn)一步的信息    
第30章 ATL Server    
30.1 IIS    
30.2 ISAPI服務(wù)器擴(kuò)展    
30.3 ATL Server簡介    
30.4 Ex30a示例程序:一個ATL Server Web站點(diǎn)    
第六部分 .NET和遠(yuǎn)景    
第31章 Microsoft .NET    
31.1 Windows組件技術(shù)    
31.2 公共語言運(yùn)行時庫    
第32章 托管C++    
32.1 公共語言運(yùn)行時庫與C++開發(fā)人員    
32.2 為什么使用C++    
32.3 托管的C++擴(kuò)展    
32.4 Visual C++ .NET和托管擴(kuò)展    
32.5 Ex32a示例程序:一個托管C++ DLL程序集
32.6程序集的用法    
32.7 Ex32b示例程序:一個托管的客戶可執(zhí)行程序    
32.8 加入托管擴(kuò)展支持    
第33章 用托管C++進(jìn)行Windows Forms編程    
33.1 Windows Forms    
33.2 Windows Forms的不足    
第34章 用托管C++進(jìn)行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服務(wù)    
第35章 用托管C++進(jìn)行ADO.NET編程    
35.1 托管的提供者    
35.2 使用托管提供者    
35.3 ADO.NET數(shù)據(jù)集    
附錄A MFC庫中的消息映射函數(shù)    
附錄B MFC庫運(yùn)行時類識別和動態(tài)對象創(chuàng)建    
B.1 運(yùn)行時獲取對象的類名    
B.2 MFC CRuntimeClass結(jié)構(gòu)和RUNTIME_CLASS宏    
B.3 動態(tài)創(chuàng)建    
B.4 示例程序    

本目錄推薦

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