利用WebBrowser控件創建自己的瀏覽器
發表于:2007-07-14來源:作者:點擊數:
標簽:
北京 鄧磊 是不是很早就想擁有一個很有個性的瀏覽器?本文將介紹如何利用MicroSoft的 WebBrowser控件在VC中創建一個屬于自己的瀏覽器。過程如下: ①新建一個基于對話框的工程,命名為test,然后在對話框上單擊右鍵,選擇 Insert ActiveX Control…在彈出的
北京 鄧磊
是不是很早就想擁有一個很有個性的瀏覽器?本文將介紹如何利用MicroSoft的
WebBrowser控件在VC中創建一個屬于自己的瀏覽器。過程如下:
①新建一個基于對話框的工程,命名為test,然后在對話框上單擊右鍵,選擇
Insert ActiveX Control…在彈出的對話框中選擇MicroSoft Web瀏覽器,點擊OK。
此時對話框上已經出現了WebBrowser控件,調整它的大小以適合對話框的大小。
②選擇WebBrowser控件,點擊View/ClassWizard,選擇Member Variables,單擊
Add Variable按鈕,此時會彈出兩個對話框,均點擊確定即可。然后給該控件加
入一個變量,我們把它命名為m_ctrlWeb。
③在ClassWizard中選擇OnInitDialog()函數,在里面加入如下代碼:
m_ctrlWeb.Navigate("d:\\temp\\html_doc\\
index.html",NULL,NULL,NULL,NULL);
第一個參數即你要瀏覽的URL地址,可以是一個文件,也可以是一個地址
(如http://dlgis.topcool.net)。
現在編譯運行改程序,如何,是不是已經看到你想要瀏覽的網頁了!不過,我們現在
的瀏覽器只能顯示,還沒有最基本的前進、后退、刷新等功能,下面我們來加入這些
功能。
④在對話框上加入三個按鈕,分別命名為前進(IDC_BUTTON_FORWARD)、后退
(IDC_BUTTON_BACK)、刷新(IDC_BUTTON_REFRESH),然后我們分別為他們加入控制代
碼。首先要控制他們在特定的情況下是否可用,即達到最頂層或最底層時,前進或后
退按鈕要相應的改變他們的狀態。利用ClassWizard給WebBrowser控件加入
CommandStateChange事件,然后單擊Edit Code按鈕,在其中加入如下代碼:
switch(Command)
{
case 1:
{
GetDlgItem(IDC_BUTTON_FORWARD)->EnableWindow(Enable);
break;
}
case 2:
{
GetDlgItem(IDC_BUTTON_BACK)->EnableWindow(Enable);
break;
}
}
此時,按鈕已經可以隨著你點擊超連接而改變他們的狀態了。下面要加入控制前進后
退的代碼以使這些按鈕起作用。
⑤分別給前進和后退按鈕的函數加入如下代碼:
前進:m_ctrlWeb. GoForward();
后退:m_ctrlWeb. GoBack();
⑥給刷新按鈕加入如下代碼:
m_ctrlWeb.Refresh();
現在,基本的功能基本已經具備了。但有時在
開發的過程中,我們不僅僅滿足于可以
瀏覽,我們或許想要對特定的連接進行特殊的處理,這就涉及到如何得到你點擊超連
接時,得到該超連接的值的問題。WebBrowser控件的TitleChange事件提供了這樣的
功能,下面我們看一下如何得到超連接的內容。
⑦利用ClassWizard給該控件加入TitleChange事件,該函數的Text參數即可以返回你
點擊的內容。在我的應用程序中是這樣利用的。我的程序中有一個有關地名的數據
庫,當TitleChange事件發生時,返回你所點擊的地名,然后到
數據庫中檢索該地名,
數據庫中存有有關該地名的各種信息,如
視頻、聲音及文本資料等等,檢索到之后,
就可以在程序中對這些資料進行顯示、播放等操作了。
到現在為止,你已經擁有了一個完全由你自己隨心所欲控制的瀏覽器以及你想要擴充
它的的功能的Idea了。
原文轉自:http://www.kjueaiud.com