1. 程式人生 > >利用Web Browser建立簡單的瀏覽器

利用Web Browser建立簡單的瀏覽器

如何利用Microsoft Web Browser控制元件在VC中建立一個屬於自己的瀏覽器呢?過程如下:
①新建一個基於對話方塊的工程,命名為Web,然後在對話方塊上單擊右鍵,選擇Insert ActiveX Control…在彈出的對話方塊中選擇Registered ActiveX Controls資料夾下的Microsoft Web瀏覽器,點選OK。 


此時對話方塊上已經出現了WebBrowser控制元件,調整它的大小以適合對話方塊的大小。 


②選擇WebBrowser控制元件,點選View/ClassWizard,選擇Member Variables,單擊Add Variable按鈕,此時會彈出對話方塊,該控制元件加入一個變數,我們把它命名為m_Web。 


③在ClassWizard中選擇OnInitDialog()函式,在裡面加入如下程式碼: 


m_Web.Navigate("d:\\temp\\html_doc\\index.html",NULL,NULL,NULL,NULL); 


第一個引數即你要瀏覽的URL地址,可以是一個檔案,也可以是一個地址(如http://www.jiandande.com 
 )。 


現在編譯執行改程式,如何,是不是已經看到你想要瀏覽的網頁了!不過,我們現在的瀏覽器只能顯示,還沒有最基本的前進、後退、重新整理等功能,下面我們來加入這些功能。 


④ 在對話方塊上加入三個按鈕,分別命名為前進(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_Web. GoForward(); 
後退:m_Web. GoBack(); 


⑥給重新整理按鈕的單擊事件函式加入如下程式碼: 
      m_Web.Refresh(); 


現 在,基本的功能基本已經具備了。但有時在開發的過程中,我們不僅僅滿足於可以瀏覽,我們或許想要對特定的連線進行特殊的處理,這就涉及到如何得到你點選超 連線時,得到該超連線的值的問題。WebBrowser控制元件的TitleChange事件提供了這樣的功能,下面我們看一下如何得到超連線的內容。 


⑦利用ClassWizard給該控制元件加入TitleChange事件,該函式的Text引數即可以返回你點選的內容。當TitleChange事件發生時,返回你所點選的字串,根據這個字串就可以在程式中做些事情了。
 到現在為止,你已經擁有了一個完全由你自己隨心所欲控制的瀏覽器以及你想要擴充它的功能的Idea了。