在Pocket PC应用程序中使用HTML对话框可以提供丰富的用户界面元素,如不同字体、颜色和样式的文本显示、HTML控件、图像显示、链接等。虽然Pocket PC提供了htmlview.dll中的HtmlView控件,但许多开发者发现其使用起来较为困难。STHtmlDialog库提供了一个封装器,简化了与HtmlView控件相关的大部分工作。
需要什么
为了开始,需要以下工具和库:
还可以下载一个示例应用程序来帮助更好地理解如何操作。
如果不使用STHtmlDialog库创建HtmlView控件,需要执行以下步骤:
- 将htmlview.lib库添加到项目中。通过调用项目设置对话框(Alt+F7),然后转到链接标签页,将htmlview.lib字符串添加到对象/库模块字段中。
- 包含Htmlctrl.h文件。在StdAfx.h文件中添加#include <Htmlctrl.h>行。
- 通过调用LoadLibrary函数加载HTML查看器DLL,并在lpLibFileName参数中指定Htmlview.dll。
- 通过调用InitHTMLControl函数注册HTML查看器控件类。
- 通过调用CreateWindow函数为HTML查看器控件创建一个窗口,并在lpClassName参数中指定DISPLAYNAME。
- 重写WindowProc函数并处理WM_NOTIFY消息。在这里,应该提供图像并处理链接(NM_HOTSPOT和NM_INLINE_IMAGE代码)。
使用STHtmlDialog库
要使用STHtmlDialog库创建HTML对话框,应该:
- 将STHtmlDialog.h和STHtmlDialog.cpp文件插入到项目中(使用Project\Add To Project\Files菜单项)。
- 将htmlview.lib库添加到项目中。通过调用项目设置对话框(Alt+F7),然后转到链接标签页,将htmlview.lib字符串添加到对象/库模块字段中。
- 将对话框表单的超类CDialog更改为CSTHtmlDialog。
- 在对话框的OnInitDialog方法中添加一个调用SetHtml函数的调用,该函数设置HTML文本。
处理HTML事件
链接:当用户在HTML中点击链接时,会调用对话框的OnLink虚函数。要处理链接,应该重写这个函数。strHref参数包含被点击链接的href属性。
图像:要在HTML中使用图像,首先需要注册它们。在初始化期间为HTML中将要使用的每个图像调用RegisterHtmlImage函数。当注册一个图像时,应该指定一个字符串,该字符串可以在HTML img标签的src属性中使用。
使用STHtmlDialog库创建基于HTML的对话框非常简单。CSTHtmlDialog封装了HtmlView控件的功能,包括图像和链接。