VS2019使用Microsoft Web Browser控件获取网页源码

VS2019使用Microsoft Web Browser控件实例
VS2019使用Microsoft Web Browser控件实例-CSDN博客文章浏览阅读7.5k次,点赞2次,收藏8次。通过ActiveX控件 Microsoft Web Browser 可以实现简易的浏览器访问,但网上大多文章都是片段式的,所以写个完整的实现流程。1.首先创建一个基于对话框的MFC项目,命名为WebBrowserDemo;2.打开主窗口,添加一个编辑框,用来输入网址;然后右键,插入ActiveX控件,选择Microsoft Web Browser;3.然后添加控件变量,第一种就是默认的CEXPLORER1变量类型;然后会自动生成CEXPLORER1.h,但是这里面会有IWe._microsoft web browser https://blog.csdn.net/can_yi/article/details/123853595上面是添加控件的方法,感谢上面的博主提供简单易懂的文章,一看就明白了。下面我记录一下Microsoft Web Browser获取网页源码的方法。

步骤一、pch.h添加如下内容:

// 放在afxhtml.h前后屏蔽33005头文件警告
#pragma warning(push)
#pragma warning(disable: 33005)
#include <afxhtml.h>
#pragma warning(pop)

#include <mshtml.h>

#include <atlbase.h>
#include <atlcom.h>

步聚二、添加一个编辑框控件和一个按钮,这些简单的自己百度或者Ai。下面提给代码:

void CMFCApplication1Dlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL)
{
    // TODO: 在此处添加消息处理程序代码
    //IDispatch* pDocDisp = m_web.get_Document();
    CComPtr<IDispatch> pDocDisp = m_web.get_Document();

    if (!pDocDisp) {
        MessageBox(_T("获取文档对象失败"));
        return;
    }

    CComPtr<IHTMLDocument2> pHTMLDoc;
    HRESULT hr = pDocDisp.QueryInterface(&pHTMLDoc);

    // ========== 获取网页标题 ==========
    CComBSTR bstrTitle;
    pHTMLDoc->get_title(&bstrTitle);
    CString strTitle(bstrTitle);
    MessageBox(strTitle, _T("网页标题"));

    // ========== 获取body完整HTML源码 ==========
    CComPtr<IHTMLElement> pBody;
    pHTMLDoc->get_body(&pBody);

    CComBSTR htmlStr;
    pBody->get_innerHTML(&htmlStr);
    CString strSource(htmlStr);

    // 测试弹窗输出源码
    MessageBox(strSource, _T("网页源码"));
}


void CMFCApplication1Dlg::OnBnClickedOk()
{
    // TODO: 在此添加控件通知处理程序代码
    if (!m_web.m_hWnd)
    {
        MessageBox(_T("浏览器控件未创建完成"));
        return;
    }
    CString strURL;
    GetDlgItemText(IDC_EDIT1, strURL);
    m_web.Navigate(strURL, nullptr, nullptr, nullptr, nullptr);
    //CDialogEx::OnOK();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值