本分步指南介绍了如何使用 web 浏览器控件以包含在 c + + 程序中使用 Microsoft 基础类 (MFC) 框架的 HTML 显示。
您可以重复使用 Internet Explorer 4.0 在程序中显示 HTML 的 web 浏览器的组件。Microsoft Visual C++ 6.0 中包含其他功能,使此组件的重新使用更简单。
要求
下面的列表列出了推荐使用的硬件、 软件、 网络基础结构和所需的服务包:
- Internet Explorer 4.0 或更高版本
本文假定您已熟悉 MFC 框架中的 Visual C++ 开发。
创建一个基于 HTML 的 MFC 视图
CHtmlView类提供了一个承载 web 浏览器控件的视图。使用应用程序向导创建一个新的 MFC 单个文档或多个文档程序时,您可以选择CHtmlView ,而不是默认的基类的基类。(此选项不可用基于对话框的程序)。
若要创建一个基于 HTML 的 MFC 视图,请按照下列步骤操作:
- 在 Visual Studio 6.0 中的在 文件 菜单上单击 新建。
- 在 新建 对话框中单击 项目 选项卡、 从列表中选择 MFC 应用程序向导 (exe)、 输入合适的项目名称和位置,然后单击 确定。
- MFC 应用程序向导 对话框中单击 单文档 或 多文档,然后单击 下一步。
- 按照向导中。在步骤 6 中,从该 基类 列表中的列表中选择 视图 类、 将基类更改为 CHtmlView,然后单击 完成。
- 单击 确定 以确认您的项目设置。
- 如果看工作区窗口中单击在 视图 菜单上的 工作区,然后单击 ClassView 选项卡,在 工作区 窗口的底部。
- 展开 视图 类,然后双击 OnInitialUpdate。
- 验证是否为此函数的源代码,如下所示 (本示例假定您的 视图 类称为 CHtmlShowView) 出现:
void CHtmlShowView::OnInitialUpdate() { CHtmlView::OnInitialUpdate(); // TODO: This code navigates to a popular spot on the Web. // Change the code to go where you want. Navigate2(_T("http://www.microsoft.com/visualc/"),NULL,NULL); }
在这种简单的情况下, Navigate2函数访问下面的 URL 设置初始网页:
http://www.microsoft.com/visualc
可以使用Navigate2 (和其他 web 浏览器控件的方法) 从其他的 Url 包括那些基于加载 HTML 页面上的 http、 https 和文件的协议。
Web 浏览器向提供程序通过使用对话框中
Web 浏览器控件是 ActiveX 控件,这意味着您可以使用熟悉的 ActiveX 技术将控件嵌入到一个对话框。创建 MFC 应用程序时,确保使用应用程序向导创建应用程序时打开对 ActiveX 控件的支持。
若要使 web 浏览器控件可用于该程序,请按照下列步骤操作:
- 在 项目 菜单上单击 添加项目/组件和控件。在 组件和控件库 对话框。
- 双击 已注册的 ActiveX 控件 并单击 Microsoft Web 浏览器,然后单击 插入。时将出现确认对话框中单击 确定。
- 当 确认类 对话框出现 (它指定调用 CWebBrowser2 MFC 包装类的详细信息) 时,请单击 确定。
- 关闭 组件和控件库 对话框。
在对话框中使用 web 浏览器控件
- 在窗体设计器中查看您的对话框。
- 请注意工具箱的 Microsoft web 浏览器,包含图标,然后拖动到您的对话框上的 Microsoft web 浏览器控件。
- 用鼠标右键单击对话框中,单击快捷菜单上的 类向导、 选择 WM_INITDIALOG 邮件、 单击 添加函数,然后再单击 编辑函数。
- 在此函数中设置的 http://localhost 初始 URL 中添加以下代码 (此示例假定在 web 浏览器控件的 ID 是 IDC_EXPLORER1):
CWebBrowser2 * pBrowse = (CWebBrowser2 *) GetDlgItem(IDC_EXPLORER1); COleVariant sLoc("http://localhost"); pBrowse->Navigate2(sLoc, NULL, NULL, NULL, NULL);
- 对话框类.cpp 文件的顶部查找现有 # include 指令,然后现有指令后添加一个指令:
#include "webbrowser2.h"