• 有关于mfc webbrowser插件的使用


    近期写的东西中经常须要嵌入一些浏览器,微软提供了一个比較好的接口,能够在MFC写的程序中嵌入一个简易的浏览器,是以ActiveX插件的形式提供的接口,使用起来也比較的方便,这里我就简单记录下这个插件的使用

    这里我用vc6为例吧。我的机器太烂,跑不动vs这样的巨人级别的软件。

    首先创建一个对话框,在对话框上右击插入ActiveX的插件


    能够看到微软提供了非常多ActiveX的插件供我们选择。


    选中浏览器插件确定后就能看到一个浏览器的ActiveX的插件了,以下我们为他关联一个变量m_test例如以下图


    关联好后在确定button处填写一个消息响应。

    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中能够看到


    就写到这里吧,用到的时候再去研究。

    菜鸟言论,仅供娱乐!

  • 相关阅读:
    论抱怨
    GitHub开源的10个超棒后台管理面板
    RESTful API 最佳实践
    理解RESTful架构
    redis 数据类型详解 以及 redis适用场景场合
    redis的应用场景 为什么用redis
    composer install 出现的问题
    什么是反向代理
    电脑 DNS纪要
    ajax请求处理概要
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6719963.html
Copyright © 2020-2023  润新知