使用 ActiveX 控件示例: 将 Internet Explorer 插入您的对话框






4.43/5 (22投票s)
2003年3月15日
4分钟阅读

262694

4044
在对话框中插入 ActiveX 控件(Internet Explorer)并处理相关事件。
引言
本文档面向 ActiveX 新手。通过分步指南,演示了如何插入和处理 Microsoft Internet Explorer 作为 ActiveX 控件。本文档介绍了如何插入控件、如何处理事件以及如何向其传递数据。如果您想使用任何其他 ActiveX 控件,本文档也可能对您有所帮助。
插入 ActiveX 控件
- 在您想要添加 ActiveX 控件的对话框上,右键单击鼠标以打开弹出菜单。在弹出菜单中,选择“插入 ActiveX 控件”。
您将看到一个菜单,向下滚动并选择“Microsoft Web Browser”,如下图所示,然后按“确定”。
此菜单中的所有其他项目都是您可以使用的 ActiveX 控件。您可能想稍后尝试其中的几个,我相信您会发现其中一些很有趣。
- 完成步骤 1 后,您会注意到屏幕上出现了一个新控件。此控件的 ID 为
IDC_EXPLORER1
。此时,您应该尽可能地拉伸此控件,因为您将需要空间。单击鼠标选中此控件,然后按 Ctrl 键和 W 键启动 MFC 类向导。 - 点击第二个选项卡,标题为“成员变量”。然后点击我们新控件的 ID
IDC_EXPLORER1
以选中它。之后,点击“添加变量”按钮。这应该会打开一个对话框,告知您 MS Dev. Studio 要为我们的 ActiveX 控件生成 C++ 包装器类。按“确定”(两次),让 MS Studio 完成其工作。 - MS Studio 创建完类后,一个名为“添加成员变量”的菜单将弹出,要求您为变量命名。给变量起一个名字,例如
m_WebBrowserCtrl
。 - 现在您将在控件 ID 旁边看到成员变量。务必立即按“确定”,否则所有之前的更改都将被 MS Studio 回滚。
- 在对话框中,双击“确定”按钮,并创建一个成员函数
OnOK
。我们将使用此按钮来测试我们的新控件。新 ActiveX 控件中有许多函数可供使用,我将在本文档的后面详细介绍其中的一些,但目前我们关注的是允许 Web 浏览组件浏览(任何)网页的命令。该函数为Navigate
。void Navigate(LPCSTR URL, VARIANT *Flags, VARIANT * TargetFrameName, VARIANT *PostData, VARIANT *Headers)
如果您只想让您的新 Web 组件浏览网页,请不要担心所有变量,您只需执行以下操作:
m_WebBrowserCtrl.Navigate("https://codeproject.org.cn", NULL, NULL, NULL, NULL);
删除
OnOK
函数的旧内容,并在其位置添加上一行。因此,OnOk
函数将如下所示:void CWebBrowserDlg::OnOK() { m_WebBrowserCtrl.Navigate("https://codeproject.org.cn", NULL, NULL, NULL, NULL); }
现在是时候测试您的应用程序了。一旦您的对话框打开,点击“确定”,这将浏览到 Code Project 的主页。
更多函数
现在让我们探索这个 ActiveX 控件的一些函数
void Navigate2(VARIANT * URL, VARIANT *Flags, VARIANT * TargetFrameName,
VARIANT *PostData, VARIANT *Headers)
与 Navigate
相同,只是此函数还允许您加载文件。
void GoBack() void GoForward()
这两个函数可用于在浏览过的页面之间前进和后退。显然,每个函数都应该在对话框上有一个自己的按钮。
void GoHome()
此函数将浏览到用户在 Internet Explorer 的用户选项中选择的用户主页。
void GoSearch()
此函数将转到 Microsoft Internet 搜索网站。
void Refresh()
此函数将刷新当前网页。
void Stop()
此函数将停止加载当前页面。
CString GetLocationName()
此函数获取位置的名称,即正常 Internet Explorer 实例标题栏中显示的字符串。
CString GetLocationURL()
此函数获取当前网页的 URL 或网址。
还有其他函数可供您使用,您可以在 MSDN 中找到所有这些函数,它们在 CHtmlView
下。
事件和消息
此组件提供广泛的事件。要访问事件,可以使用类向导。单击对话框上的 ActiveX 控件,然后按 Ctrl 键和 W 键,或右键单击控件并选择“事件...”。您将看到一个您可能想要使用的可能事件列表。以下是其中一些供您开始使用:
BeforeNavigate2
在导航到 URL 的过程开始之前,将触发此事件。
NavigateComplete2
在导航到 URL 的过程完成并且页面加载后,将触发此事件。
您可以根据需要或认为合适,检查所有其他事件并在您的应用程序中使用它们。
我希望阅读本文能像写作一样有趣 :)
致谢
在演示项目中的动画图像中,我使用了 Oleg Bykov 的文章。它可在 Code Project 上找到:借助 CPictureEx 和 CPictureExWnd 为您的 MFC 和 ATL 项目添加 GIF 动画。