• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 用Visual C++開發簡易瀏覽器

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    季 敏 隨著Inte .net 的持續升溫,Web類應用軟件得到廣泛應用,有越來越多的軟件具有了Web特性,我們的很多應用 開發 往往也需要具有Web瀏覽功能。以下就讓我們討論一下怎樣實現一個具有基本瀏覽功能的Web瀏覽器。 在Visual C++5.0的Components and Controls G
    季 敏

      隨著Inte.net的持續升溫,Web類應用軟件得到廣泛應用,有越來越多的軟件具有了Web特性,我們的很多應用開發往往也需要具有Web瀏覽功能。以下就讓我們討論一下怎樣實現一個具有基本瀏覽功能的Web瀏覽器。

      在Visual C++5.0的Components and Controls Gallery中有一個Web Browser控件,利用這個控件,我們就可以實現一個小型的Web瀏覽器。通過如下方法把它加入到一個項目中。首先創建一個項目(可以是一個SDI Application),然后打開Components and Controls Gallery對話框,在Components and Controls Gallery對話框中選擇Registered ActiveX Control。在控件列表中選擇插入Microsoft Web Browser Control,插入這個控件將在項目中自動加入CWebBrowser類,這個類將實現IWebBrowser接口的各個功能。IWebBrowser的幾個重要函數說明如下:

    refresh 重新裝載文件 stop 停止打開文件 navigate 打開指定的html文件 goback 打開歷史表中的上一項 goforward 打開歷史表中的下一項 gohome 打開home或start page.


      插入Web Browser控件后,我們先在視圖類(CMyBrowserView)中加入一個CWebBrowser類型的成員變量m—browserControl,然后在視圖類創建時,生成Web Browser控件并初始化它。具體實現如下:

      int CMyBrowserView::OnCreate(LPCREATESTRUCT lpCreateStruct)

      { if (CView::OnCreate(lpCreateStruct) == -1)

       return -1;

       m—browserControl.Create (″Browser″, WS—VISIBLE, CRect

       (0,0,150,150), this, ID—BROWSER—CONTROL);

       return 0;}

      在視圖(View)改變大小時,同時改變Web Browser控件大小。

      void CMyBrowserView::OnSize(UINT nType, int cx, int cy)

      { CView::OnSize(nType, cx, cy);

       if (nType != SIZE—MINIMIZED)

       { try {

       m—browserControl.SetWidth (cx);

       m—browserControl.SetHeight (cy);}

       catch (COleDispatchException* r)

       { CString str;

       str.Format (″Error <%d> in <%s>: <%s>″, r->m—wCode,

       r->m—strSource, r->m—strDescription);

       ::AfxMessageBox (str);

       r->Delete ();

       } catch (COleException* pE)

       {::AfxMessageBox (″IDispatch Error with Browser Control.\n″);

       pE->Delete (); }

       m—browserControl.UpdateWindow (); } }

      至此,我們已經創建了Web Browser控件,現在,我們可以來實現具體的瀏覽工作了。在工具條中加入前進,后退,刷新,打開,停止的按鈕。并在視圖類(CMyBrowserView)中加入它們的命令處理函數。

      void CMyBrowserView::FileOpen()

      { CURlDialog dlg;//顯示一個對話框,供填入URL地址

       if (IDOK == dlg.DoModal ())

       { try {

       m—browserControl.Navigate (dlg.m—URL,NULL,NULL,NULL,NULL);}

       catch (COleDispatchException* r)

       { .....

       r->Delete ();

       } catch (COleException* pE)

       {::AfxMessageBox (″IDispatch Error with Browser Control.\n″); pE->Delete ();} } }

      //刷新

      void CMyBrowserView::OnRefresh()

      { try { COleVariant level;

       level = (short)3;// Means Refresh Completely.

       m—browserControl.Refresh2 (level);

       } catch (COleDispatchException* r)

       { .....

       r->Delete ();

       } catch (COleException* pE)

       {::AfxMessageBox (″IDispatch Error with Browser Control.\n″); pE->Delete (); } }

      //搜索

      void CMyBrowserView::OnWebSearch()

      { m—browserControl.GoSearch();}

      //返回上一頁

      void CMyBrowserView::OnWebBack()

      { m—browserControl.GoBack(); }

      //跳到下一頁

      void CMyBrowserView::OnWebForward()

      { m—browserControl.GoForward(); }

      至此,我們已完成一個Web瀏覽器的框架,通過調用CWebBrowser類的其他成員函數,我們還可以實現其他的一些Web瀏覽功能。  

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>