Pocket PC 的基于 HTML 的对话框






4.81/5 (14投票s)
一个库,提供了一个简单的封装器,封装了 CE 中与 HtmlView 控件相关的大部分工作。
引言
在 Pocket PC 应用程序中使用基于 HTML 的对话框似乎是个好主意。 您需要做的大部分工作将由 HTML 引擎完成。 Pocket PC 提供了包含 HtmlView 控件的 htmlview.dll。 但是很多开发者觉得它很难使用。STHtmlDialog 库提供了一种简单的方法来使用封装了 HtmlView 控件完成的大部分工作的包装器。
在对话框中使用 HTML,您可以显示使用不同字体、颜色和样式的文本,使用不同的 HTML 控件,显示图像,使用链接以及 HTML 提供的许多其他功能。
另请记住,HtmlView 控件提供的 HTML 不支持您可能期望的某些功能,如 JavaScript、框架等。
你需要的东西
背景
要在没有 STHtmlDialog 库的情况下创建 HtmlView 控件,您应该
- 将 *htmlview.lib* 库添加到您的项目。 调用 *项目设置* 对话框 (Alt+F7),然后转到 *链接* 选项卡页面并将 *htmlview.lib* 字符串添加到 **对象/库模块** 字段。
- 包含 *Htmlctrl.h* 文件。 将
#include <Htmlctrl.h>
行添加到您的 *StdAfx.h* 文件中。 - 通过调用
LoadLibrary
函数加载 HTML Viewer DLL。 在 *lpLibFileName* 参数中指定 *Htmlview.dll*。 - 通过调用 InitHTMLControl 函数注册 HTML Viewer 控件类。
- 通过调用
CreateWindow
函数为 HTML Viewer 控件创建一个窗口。 在 lpClassName 参数中指定DISPLAYNAME
。 - 重写 *WindowProc* 函数并处理
WM_NOTIFY
消息。 在这里,您应该提供图像并处理链接(NM_HOTSPOT
和NM_INLINE_IMAGE
代码)。
使用 STHtmlDialog 库
要使用 STHtmlDialog 库创建 HTML 对话框,您应该
- 将 *STHtmlDialog.h* 和 *STHtmlDialog.cpp* 文件插入到您的项目中(使用 **项目\添加到项目\文件** 菜单项)。
- 将 *htmlview.lib* 库添加到您的项目。 调用 **项目设置** 对话框 (Alt+F7),然后转到 **链接** 选项卡页面并将 *htmlview.lib* 字符串添加到 *对象/库模块* 字段。
- 将您的对话框窗体的超类
CDialog
CSTHtmlDialog
。 - 在您的对话框的
OnInitDialog
方法中,您应该添加一个对设置 HTML 文本的SetHtml
函数的调用。
处理 HTML 事件
链接
当用户单击 HTML 中的链接时,将调用您的对话框的 OnLink
虚函数。 要处理链接,您应该重写此函数。 *strHref* 参数包含单击的链接的 href
属性。
图像
要在 HTML 中使用图像,首先注册它们。 在初始化期间为每个您将在 HTML 中使用的图像调用 RegisterHtmlImage
函数。 注册图像时,您应该指定一个可用于 HTML img
标签的 src
属性的字符串。
结论
使用 STHtmlDialog
库很容易创建一个基于 HTML 的对话框。 CSTHtmlDialog
封装了 HtmlView 控件的功能,包括图像和链接。