【正文】
ew 類為你和你的用戶打開了一個新的世界。需要記住的重要一點是,從 Inter 訪問中能夠得到好處的應(yīng)用程序從 CHtmlView 類的使用中也會得到好處。另外,基于 HTML 的幫助必須建立 Inter 鏈接。一方面,難以在基于 HTML 的幫助中建立能夠滿足需要的查詢功能。而基于 HTML 的幫助則既不需要編譯器,也不需要特殊工具,只要有個文本編輯器即可。而更新 HTML 幫助則簡單到只需要在 Web 服務(wù)器上修改文件即可。 基于 HTML 的幫助的優(yōu)點十分明顯。 圖 HTML 這種新型應(yīng)用程序比你原先想像得更有價值。換句話說,你可以建立一個提供瀏覽器所有功能、而又不存在它們所含問題的程序環(huán)境。上述對話框 Base Class(基類)組合框中包含了一個 CHtmlView 選項,正是使用這個選項來創(chuàng)建這種新型的應(yīng)用程序。 基于 HTML 文檔的應(yīng)用程序 15 Visual C++ 提供了一種新的應(yīng)用程序類型,但你在 New 對話框的 Project 選項卡中卻找不到它的蹤影。所幸的是,通過讓服務(wù)器接管客戶端窗口的方法, Microsoft 已經(jīng)降低了這類內(nèi)存需求,現(xiàn)在只負(fù)責(zé)操 作文檔本身了。而且,你或許也經(jīng)歷過內(nèi)存不夠的困惑。 當(dāng)然,多文檔界面的應(yīng)用程序也有不少的缺點。像最小化其中一個文檔,而最大化另一個文檔這樣的 任務(wù)也需要額外的程序代碼。并不只是要跟蹤所有打開的文檔,也要提供 Windows 菜單來管理特殊的程序特性,比如要考慮屏幕劃分問題。 多文檔界面應(yīng)用程序的缺點就在于它處理多個文檔。 多文檔界面的應(yīng)用程序通常也都具有多種功能,文本編輯器可以提供十分簡單的查找功能但并不提供替換文本的任何方法。人們需要在文檔之間進行比較,這就是多文檔界面的應(yīng)用程序不僅幽雅而且在眾多情形下需要的原因。例如, Microsoft Word 和 Microsoft Excel 都是多文檔應(yīng)用程序的示例。即使他們需要同時 打開多個數(shù)據(jù)庫,數(shù)據(jù)庫本身的使用規(guī)則也減少了用戶本身訪問多個數(shù)據(jù)庫的可能性。這種限制使得 CorelDRAW 比它應(yīng)該提供的方法要難用一些。 不幸的是,單文檔界面的應(yīng)用程序與基于對話框的應(yīng)用程序有相同的問題用起來太復(fù)雜了。請注意這個示例可以作為 OLE的客戶端。實際上,這類應(yīng)用程序也可以作為 OLE 客戶程序,盡管極少有程序員把這種能力添加到他的應(yīng)用程序中。另外,單文檔界面應(yīng)用程序至少要比多文檔界面的應(yīng)用程序少一個菜單就是用 14 于選擇要編輯文檔的 Windows 菜單。對某些小型應(yīng)用(比如文本編輯器或小型圖像編輯器)可以采用這種類型的窗口應(yīng)用程序。 單文檔界面應(yīng)用程序 單文檔界面應(yīng)用程序是像 NotePad(記事本)或 Microsoft Paint(畫筆)這樣的應(yīng)用程序。 Visual C++有能力創(chuàng)建各種不同類型的代碼。它們操作某種類型的數(shù)據(jù)(像單文檔或 多文檔應(yīng)用程序那樣),但與 Inter 結(jié)合在了一起。由于多文檔應(yīng)用程序是 C++編程中十分復(fù)雜的部分,因此,當(dāng)你考慮建立這類應(yīng)用程序時,應(yīng)該在 Visual C++的靈活性與諸如 Visual Basic 之類的快速應(yīng)用開發(fā)工具提供的速度之間進行權(quán)衡。這類應(yīng)用程序也需要某種類型的菜單系統(tǒng)。 ,也適用于極小型不需要菜單系統(tǒng)的應(yīng)用程序。還要提供實現(xiàn)這個資源所需的二進制數(shù)據(jù)。簡單地輸入自定義資源名。創(chuàng)建一個自定義資源項目很容易:只要單擊 Insert Resource(插入資源)對話框上的Custom(自定義)按鈕。 自定義資源就是自己設(shè)計的資源。你只要將 RC 文件添加到工程中,剩下的由 Visual C++來處理。只需簡 單地為想要共享的資源創(chuàng)建一個分離的 RC 文件就行了。可惜的是,這種方法只對圖標(biāo)、光標(biāo)、聲波文件以及 Visual Basic 窗體文件有用。選擇包含了想要導(dǎo)入的資源的文件。只需右擊 Resources(資源)文件夾,從上下文菜單選擇 Import(導(dǎo)入)而不是 Insert(插入)。 可以在當(dāng)前程序中使用來自其它工程的資源。請注意,它顯示出我們已提到過的所有十種資源。只需顯示 ResourceView(資源視圖),右擊 Resources(資源)文件夾,從上下文菜單中選擇 Insert(插入)。 Visual C++支持十種資源: 加速鍵、位圖、光標(biāo)、對話框、 HTML、圖標(biāo)、菜單、串表、工具條和版本信息。所創(chuàng)建的其它資源是設(shè)計另外一些程序的一部分,如字符串。你會看到,某些資源存在子類,每種資源都有特定的用途。當(dāng)然, Visual C++資源不僅僅是原材料,但原材料的作用是非常大的。在這里,資源與代碼結(jié)合,創(chuàng)建應(yīng)用程序的一部分,如菜單或工具條。雖然不能從 Visual C++中獲得物理意義上的貴重珍寶,但可以挖掘到建立程序時所需的資源。 Visual C++的資源 資源,是指各種各樣可供利用的財富,它們可能埋藏在地表下面,也可能就在你的后院中。單擊工具條左邊緣的雙線豎杠,然后把工具條拖曳 12 到所需位置。該命令將在菜單或工具條中消失,當(dāng)然,你隨時都可以重新把它添加到菜單或工具條中。 從工具條或菜單中刪除不需要命令的方法也很簡單。你需要做的工作就是打開要修改的下拉菜單,在Commands 選項卡中抓住要添加到 菜單中的命令,然后將其拖曳到菜單項中希望的位置。如果選擇了某個現(xiàn)在還沒有相應(yīng)圖標(biāo)的命令,那么系統(tǒng)會顯示 Button Appearance 對話框,在這個對話框中可以為命令選擇一個圖標(biāo)。對每個菜單和工具條它都包含了一系列的圖標(biāo)(代表對應(yīng)的命令)或文本命令。如果想把某個菜單項對應(yīng)的工具條添加到工具條區(qū)域,只需要單擊該菜單項即可;反過來,如果想在工具條區(qū)域中去掉某個工具條,也只需要通過在上下文菜單中單擊對應(yīng)的菜單項、去掉其選中符號即可 Customize對話框包含了幾個讓你重新配置 Developer Studio界面上絕大多數(shù)部件的選項卡。在工具條上的任何位置右擊,都會看到如下圖所示的上下文菜單: 圖 工具 條 該菜單中列出了 Visual C++ 提供的所有標(biāo)準(zhǔn)工具條。 工具條 工具條( Toolbar)是我們討論 Developer Studio 界面的最后一個話題。 技巧 : 右擊資源視圖最頂端的文件夾,系統(tǒng)顯示一個可以訪問兩類特殊對話框資源的菜單: Resource Includes 和 Resource Symbols。例如,對話框( Dialog)文件夾中包含了工程中所有的對話框,包括 About 對話框。工程中沒有使用某種特定類型的資源,那么資源視圖中就不會顯示這種資源的文件夾。圖 顯示了一個典型的資源視圖窗口。 資源視圖( ResourceView) 資源視圖( ResourceView)在層次列表中列出了工程中用到的所有資源。 技巧 : 在 ClassView 窗口中右擊,然后從上下文菜單中選擇 Hide,可以隱藏 ClassView窗口(或任 何其它視圖,只要在這些視圖中按這一步驟操作)。當(dāng)看到一個綠色框時,你就知道是看到了某個 COM 對象的方法。類視圖中顯示三種成員函數(shù):第一種是公共成員函數(shù),它的圖標(biāo)為一個紫色菱形框 ;第二種是私有成員函數(shù),它的圖標(biāo)上也有個菱形框,不過菱形框的旁邊還有一把鑰匙;第三種是保護成員函數(shù),它的圖標(biāo)上有個菱形框和一個小鎖。 10 圖 類視圖 在層次列表的每個項目前面都有一個特殊的圖標(biāo)。例如,類中將包含要編輯的成員函數(shù)等。這個對話框還能夠創(chuàng)建監(jiān)控的任何事件的句柄。當(dāng)做完了一個對話框后, 這個檢查相當(dāng)重要。不過,如果決定確實要使用該控件時,記住以后把該控件添加到工程中。使用 Insert ActiveX Control 菜單項可以把 ActiveX 控件添加到當(dāng)前對話框中而無須將它實際添加到工程中。最后,可以打開ClassWizard 來操作所選對象或查看文檔的屬性。由于這些項目依賴于建立工程時創(chuàng)建的BSC 文件,因此,在使用這些項目前要確保最近有效地重建過工程。后面的兩個菜單項用于瀏覽工程。接下來的三個菜單項可以查找當(dāng)前項更詳細(xì)的信息。如果當(dāng)前工程中還沒有包含該文件,那么使用 Insert File into Project 菜單項就可以把該文件包含到工程中。 可以像使用任何編輯器那樣剪切、復(fù)制或粘貼文本。 文本框的各個區(qū)域中都可以通過右擊來顯示一個上下文相關(guān)菜單。 圖 VC窗口界面元素 本窗口的左邊緣是一豎條,這是 Visual C++ 放置各種符號的地方,它通過顏色來區(qū)分?jǐn)?shù)據(jù)和代碼控制區(qū)。例如,關(guān)鍵字的缺省顏色為藍(lán)色,而注釋的顏色為綠色。 9 Visual C++ 通過各種手段來簡化編碼工作。每個功能區(qū)都可以獨立于其它功能區(qū)來操作,因此,可以在各功能區(qū)之間自由地切換。另外, Visual C++提供的額外靈活性也使得編寫這些類型的應(yīng)用程序更加容易些。即使對屬于快速應(yīng)用程序開發(fā)環(huán)境中的應(yīng)用程序編程來說,也沒有人愿意花時間從 Inter 上下載一個巨型控件,也同樣沒有人愿意讓慢速的過濾器加重 Web 服務(wù)器的負(fù)擔(dān)。另外,增強的向?qū)沟眠@個版本的 Visual C++比以前版本更為友好。Microsoft 添加到這個版本的 Visual C++中的最新特性之一是更 佳的原型能力,這一點通過增強的向?qū)韺崿F(xiàn)。 C++是編寫諸如操作系統(tǒng)、設(shè)備驅(qū)動程序以及動態(tài)鏈接庫( DLL)的強大語言,這一點不會不引起你的注意,這三種領(lǐng)域代碼的開發(fā)依然是 Visual C++的主戰(zhàn)場。使用這種語言編寫的程序幾乎可以與用 匯編語言編寫的程序達到相同的運行速度,并且避免了匯編語言存在的各種問題。不幸的是,當(dāng)需要使用像 C++這樣的語言刪除編程中的繁文縟節(jié),并把任務(wù)完成時,這種保護作用就變成了開發(fā)工作的障礙??梢詮氐椎乜刂普麄€開發(fā)環(huán)境。 然而,先把這些負(fù)面缺陷暫時放到一邊,來看一看 Visual C++具備的長處。 Visual C++的學(xué)習(xí)周期確實比其它語言要長。最近似乎有許多專業(yè)的程序員放棄了使用這一語言而改用了其它產(chǎn)品提供的 RAD(快速應(yīng)用開發(fā))環(huán)境。 8 第 2 章 Visual C++應(yīng)用平臺及網(wǎng)絡(luò) 協(xié)議 Visual C++ 引論 只有真正的程序員才使用 Visual C++。 軟件環(huán)境 操作系統(tǒng): WINDOWS98/2021/XP/Vista。 內(nèi)存: 128MB 以上。 課題開發(fā)平臺和開發(fā)工具 本課題在 windows 系統(tǒng)下開發(fā),軟件基本運行環(huán)境為 Windows 環(huán)境。 3.收藏夾的制作。 2.在新窗口中打開鏈接。 瀏覽器開發(fā)過程中,有幾個模塊做起來比較復(fù)雜,構(gòu)成了整個應(yīng)用程序的難點所在。設(shè)計瀏覽器時,首先確定要解決的問題是弄清楚 MFC中封裝的 CHtmlView 類的定義和使用方法 ,徹底弄明白此類到底封裝了哪些對瀏覽網(wǎng)頁支持的功能,這是瀏覽器編程的基礎(chǔ);其次是通過分析頁面下載的具體過程,在打開網(wǎng)頁的過程中應(yīng)用程序需要做哪些事情,以便在應(yīng)用程序中加入對這些過程支持的代碼;在對應(yīng)用程序的流程有了 大致的輪廓以后,再開始考慮程序框架的設(shè)計,應(yīng)用程序外觀的設(shè)計;最后也是最關(guān)鍵的就是編寫實現(xiàn)瀏覽網(wǎng)頁的代碼 , 以實現(xiàn)瀏覽器的基本功能,緊接著就是程序的調(diào)試和完善。開發(fā)瀏覽器時,若想從非常深入地解析 HTTP 協(xié)議的框架和原理,試圖從低層協(xié)議出發(fā)解析從服務(wù)器獲得的 HTML 寫成的網(wǎng)頁難度會相當(dāng)大,因此,在技術(shù)上,使用 MFC 的 CHtmlView 類來實現(xiàn)瀏覽器應(yīng)用程序的編寫。在我國 ,瀏覽器技術(shù)研究比較緩慢,具有自主版權(quán)的瀏覽器在市場上還很罕見。 WEB 瀏覽器把純文本的 HTML 文件轉(zhuǎn)變成圖文混排,可理解性強的 WEB 頁面,極大地推動了因特網(wǎng)的普及與發(fā)展。隨著協(xié)議的不斷完善和面向?qū)ο箝_發(fā)工具的不斷發(fā)展,基于協(xié)議的應(yīng)用程序的開發(fā)也相應(yīng)的變得容易起來。 國內(nèi)外研究狀況概述 任何協(xié)議的雛形都非盡善盡美的, HTTP 協(xié)議也經(jīng)歷了這樣一個功能不斷完善,不斷增加的過程。網(wǎng)絡(luò)瀏覽器雖然有很多現(xiàn)成的版本,有一些都已經(jīng)很成熟,比如微軟的 IE 和 NETSCAPE,但在很多時候都需要進行瀏覽器的定制開發(fā)。為了獲取互聯(lián)網(wǎng)上海納百川的資訊,在網(wǎng)絡(luò)的世界里找到自己想了解到的,自己想探索到的新 知識,需要借助到一個工具,這就是我們每一個人都熟悉的瀏覽器。 研究本課題的意義 隨著網(wǎng)絡(luò)時代的飛速發(fā)展與前進,切身感受到了它在生活中占據(jù)著越來越重要的地位,計算機軟件硬件的快速跳躍式的發(fā)展,計算機廣泛 地 應(yīng)用于各行各業(yè),包括醫(yī)學(xué) ,金融,教育,建筑等。The HTTP protocol。 the application, when added to the IE toolbar, popup window the prohibition to prohibit the browsing of a visit the Web page of some sites, save the page, print the page, stop the current visit, refresh the page to see source documents and Inter properties and so on. Keywords