標籤:webbrowser mfc vc
最近寫的東西中常常需要嵌入一些瀏覽器,微軟提供了一個比較好的介面,可以在MFC寫的程式中嵌入一個簡易的瀏覽器,是以ActiveX外掛程式的形式提供的介面,使用起來也比較的方便,這裡我就簡單記錄下這個外掛程式的使用
這裡我用vc6為例吧,我的機器太爛,跑不動vs這種巨人層級的軟體。
首先建立一個對話方塊,在對話方塊上右擊插入ActiveX的外掛程式
可以看到微軟提供了很多ActiveX的外掛程式供我們選擇。
選中瀏覽器外掛程式確定後就能看到一個瀏覽器的ActiveX的外掛程式了,下面我們為他關聯一個變數m_test如
關聯好後在確定按鈕處填寫一個訊息響應。
m_test.Navigate("www.baidu.com",NULL,NULL,NULL,NULL);
用這個變數的一個成員函數開啟這個網址
關於WebBrowser幾個問題
1.關於如何取得這個網頁的內容
HRESULT hr; IDispatch* lpDispatch; lpDispatch = m_WebBrower.GetDocument(); IHTMLDocument2* lpDocument2; hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2); if ( hr == S_OK ) {IHTMLElement * pBody;lpDocument2->get_body(&pBody);BSTR html;//存放html原始碼CComBSTR html_t;//用於將BSTR轉換為cout可以處理的字串pBody->get_innerHTML(&html);CString strCookie(html);CFile myfile("1.html",CFile::modeWrite|CFile::modeCreate);myfile.Write(strCookie,strCookie.GetLength());myfile.Close();pBody->Release(); lpDocument2->Release(); } lpDispatch->Release();
2.有關於如何取得這個網頁的cookie
HRESULT hr; IDispatch* lpDispatch; lpDispatch = m_WebBrower.GetDocument(); IHTMLDocument2* lpDocument2; hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (PVOID*)&lpDocument2); if ( hr == S_OK ) { hr = lpDocument2->get_cookie(&bstrCookie); if ( hr == S_OK ) {CString strCookie(bstrCookie);CFile myfile("1.txt",CFile::modeWrite|CFile::modeCreate);myfile.Write(strCookie,strCookie.GetLength());myfile.Close();//::MessageBox(NULL, strCookie,"當前Cookie", MB_ICONINFORMATION); }lpDocument2->put_cookie(NULL);pBody->Release(); lpDocument2->Release(); } lpDispatch->Release();
3.關於一些訊息映射
往往我們要等待網頁載入完成才能進行一些操作,微軟為我們提供了豐富的訊息映射,在ClassWizard中可以看到
就寫到這裡吧,用到的時候再去研究。
菜鳥言論,僅供娛樂!