BCB6Delphi7下完美调用CHM帮助
在BCB6(Borland C++ Builder 6)与Delphi7环境下完美调用CHM帮助文件,是一项提升应用程序用户体验的重要技术。本文将详细解析如何在这些开发环境中实现对CHM格式帮助文档的调用,包括所需工具、步骤及代码示例。 ### 一、工具准备 确保安装了Microsoft的HtmlHelp Workshop,这是创建和编辑CHM文件的官方工具。下载地址为: [Microsoft HTML Help](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp) HtmlHelp Workshop提供了强大的功能,不仅用于创建CHM文件,还支持对HTML文档的预览和编辑。此外,Microsoft提供了丰富的文档资料,如HtmlHelp API、HTML Workshop的使用教程以及API函数示例等,这些资料位于MSDN的“htmlhelp”关键字搜索结果中。 ### 二、CHM文件的制作 1. **HTML页面编写**:CHM文件实质上是由多个HTML页面压缩而成的,每个页面代表一个帮助主题。例如,有四个HTML文件(1001.htm、1002.htm、1003.htm、1004.htm),分别对应不同的帮助主题。 2. **定义宏**:为了方便引用,可以定义宏将HTML文件名与宏名关联起来,如: ``` #define 第一 1001 #define 第二 1002 #define 第三 1003 #define 第四 1004 ``` 3. **使用HTMLHelp Workshop**:在项目设置中,添加HTML文件,并在“HtmlHelp API Information”中设置Alias,将宏与HTML文件关联起来。同时,在“Map Numbers”中选择包含宏定义的头文件,确保调用时能够正确识别。 ### 三、在BCB6/Delphi7中调用CHM帮助 BCB6/Delphi7默认并不支持直接调用CHM帮助,需要通过注册hhctrl.ocx控件来实现。此控件提供HtmlHelp API,用于调用CHM文件。可以通过Borland提供的implib.exe工具生成静态库hhctrl.lib,以便在程序中使用。 #### 调用CHM的帮助步骤: 1. **注册hhctrl.ocx**:如果系统未自动注册,需手动注册以启用HtmlHelp API。 2. **调用WM_HELP消息**:VCL框架中默认支持调用WM_HELP消息,当用户按下F1键时,系统会查找当前窗口的HelpContext值,并调用对应的帮助文件。对于CHM文件,需要将HelpContext值与CHM文件中的ID对应。 ### 四、代码示例 在MainFormUnit.h中,可以通过以下方式定义和调用帮助: ```cpp TMainForm = class(TForm) private { HelpContext: Integer; } public procedure HelpButtonClick(Sender: TObject); end; procedure TMainForm.HelpButtonClick(Sender: TObject); begin HtmlHelp(Handle, 'yourhelpfile.chm', HH_DISPLAY_TOPIC, HelpContext); end; ``` 其中`HtmlHelp`函数是核心调用函数,`Handle`是当前窗体的句柄,`yourhelpfile.chm`是CHM文件路径,`HH_DISPLAY_TOPIC`是显示主题的标志,而`HelpContext`则是CHM文件中的帮助主题ID。 通过以上步骤,可以实现在BCB6/Delphi7中完美调用CHM帮助文件,极大地提高了应用程序的用户友好性和可维护性。
本文主要讲解如何在C Builder6.0及之前的版本中使用Microsoft的新型帮助:"CHM格式帮助文档",对于如何制作CHM格式帮助,连同如何获取帮助文档制作工具,本文只会一笔带过,给出官方链接或推荐其他这方面好的教程,就不再赘述。
CHM格式帮助文档制作工具
需要Microsoft的html help workshop来制作CHM格式的帮助,能够到Microsoft站点下载:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp
好的CHM帮助制作教程
学习如何制作CHM格式帮助文档,请参考:
Html Help Sample in Delphi[卡夫].chm 作者:卡夫[cgcalf@263.net]
跟我学HtmlHelp Workshop[冯惠军][石家庄铁道学院].chm 作者:冯惠军[石家庄铁道学院]
假如想了解更多关于Microsoft Html Help的知识,能够查阅:
Microsoft Html Help Docs.zipMicrosoft官方文档
更好的是直接在线查阅Microsoft的官方文档,到MSDN搜索关键字:"html help",能够搜索到很多关于Microsoft html help的内容,有最新的html workshop下载、在线API手册、制作帮助文档示例等等。
到这里,我假设读者已安装了Microsoft html help workshop,且已掌控如何制作CHM格式帮助文档。
本文中程式中调用的示例帮助文档包含四个主题,这四个主题的源代码如下:
1001.htm
<html>
<head>
<title>第一个主题</title>
</head>
<body>
<p>第一个主题</p>
</body>
</html>
1002.htm
<html>
<title>第二个主题</title>
</head>
<body>
<p>第二个主题</p>
</body>
</html>
1003.htm
<html>
<head>
<title>第三个主题</title>
</head>
<body>
<p>第三个主题</p>
</body>
</html>
1004.htm
<html>
<head>
<title>第四个主题</title>
</head>
<body>
<p>第四个主题</p>
</body>
</html>
添加索引“第一个主题”、“第二个主题”、“第三个主题”、“第四个主题”,添加搜索关键定“第一个主题”、“第二个主题”、“第三个主题”、“第四个主题”,制作好CHM帮助文档。下一步的工作,是添加此帮助文档对程式UI界面的上下文敏感关系。方法如下:
用文本编辑器写一个.h文档(头文档,CHM编译器需要用他),文档名任意,内容如下:
剩余10页未读,继续阅读
- 粉丝: 2
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助