VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 22902|回复: 36

HtmlHelp帮助制作及调用精解示例

[复制链接]
 楼主| 发表于 2007-11-2 08:48:01 | 显示全部楼层 |阅读模式
本帖最后由 icecept 于 2015-9-2 22:05 编辑

首先声名htmlhelp API:
Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwngcaller As Long, ByVal pszfile As String, ByVal ucommand As Long, ByVal dwdata As Any) As Long
'public const hh_display_topic = &H0         '上下文相关的帮助(导航窗口)
Public Const hh_display_index = &H2          '索引窗口
'public const hh_help_context = &HF          '上下文相关的帮助
'public const hh_display_search = &H3        '搜索窗口
'public const hh_display_text_popup = &HE    '上下文相关的帮助
然后调用此函数:
Public Sub mnuHelpContents_Click()
    '如果这个工程没有帮助文件,显示消息给用户
    '可以在“工程属性”对话框中为应用程序设置帮助文件
    On Error Resume Next
    If Dir(CheckFilePath(App.Path) & "记事薄HTML帮助.chm") = "" Then
        MsgBox "无法显示帮助目录,可能帮助文件已被移除或损坏,请重新安装帮助文件。", vbInformation, "记事薄"
    Else
        Call HtmlHelp(hWnd, App.HelpFile, hh_display_index, ByVal "作者简介")
        If Err Then
            MsgBox Err.Description
        End If
    End If
End Sub
当用户按F1键时不存在帮助文件:
Private Sub rtfText_KeyDown(KeyCode As Integer, Shift As Integer)
     If KeyCode = vbKeyF1 Then
         If Dir(frmMain.CheckFilePath(App.Path) & "记事薄HTML帮助.chm") = "" Then
             MsgBox "无法显示帮助目录,可能帮助文件已被移除或损坏,请重新安装帮助文件。",vbInformation, "记事薄"
             Exit Sub
         End If
    End If
End Sub

本帖被以下淘专辑推荐:

 楼主| 发表于 2007-11-2 08:52:52 | 显示全部楼层

调用chm帮助文件的方法

一个应用程序不论编制得如何完美,在很多情况下用户还是会对如何使用它提出问题。 Visual Basic 提供了对两种不同

帮助系统的支持:传统的 Windows 帮助系统 (WinHelp)和新的 HTML 帮助(CHM帮助)。当我们制作好帮助文件后,

就需要在程序的适当位置编写代码进行调用,本文将讨论几种在程序中调用CHM帮助文件的方法。
方法一 使用F1键:
这种方法最简单,只需如下代码即可:
Private Sub Form_Load()
App.HelpFile = app.path & "\help.chm" '调用与主程序同目录下的help.chm帮助文件,按F1键调用
End Sub

方法二 使用SendKeys方法:
Private Sub Form_Load()
App.HelpFile = app.path & "\help.chm"
End Sub
private Sub CmdHelp_Click()
SendKeys "{F1}" '发送击键到活动窗口
End Sub

方法三 使用Shell函数:
private Sub CmdHelp_Click()
Shell "hh.exe help.chm", vbNormalFocus 'help.chm为指定的帮助文件,可包含路径。
End Sub

方法四 使用HtmlHelp函数:

首先声名htmlhelp API:
Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwngcaller As Long, ByVal pszfile As String,

ByVal ucommand As Long, ByVal dwdata As Any) As Long
'public const hh_display_topic = &H0         '上下文相关的帮助(导航窗口)
Public Const hh_display_index = &H2          '索引窗口
'public const hh_help_context = &HF          '上下文相关的帮助
'public const hh_display_search = &H3        '搜索窗口
'public const hh_display_text_popup = &HE    '上下文相关的帮助

然后在过程中调用:
private Sub CmdHelp_Click()
App.HelpFile= app.path & "\help.chm" '用变量i记录与主程序同目录下的help.chm帮助文件
HtmlHelp(hWnd, App.HelpFile, hh_display_index, ByVal "作者简介")
End Sub

方法五 使用ShellExecute函数:
先声明如下API:
Option Explicit
'声明API函数用于异步打开一个文档
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal

lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal

nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1
然后在过程中调用:
private Sub CmdHelp_Click()

App.HelpFile = App.Path & "\help.chm" '用变量b记录与主程序同目录下的help.chm帮助文件
ShellExecute  0, "open", App.HelpFile, "", "", SW_SHOWNORMAL
End Sub
以上五种方法各有优缺点,从代码的简单上讲,建议使用第二种方法。从功能上讲,建议使用第五种方法,因其不只用

于打开CHM帮助文件,还可用同样的格式打开、打印或查找一个文件或文档(参见该API的说明资料)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-2 09:45:06 | 显示全部楼层

HTML帮助制作474汉化版

此程序是邮汉化新世纪汉化
第一部分

HTML帮助制作474.part1.rar

1.46 MB, 下载次数: 1394

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-2 09:46:15 | 显示全部楼层
第二部分

HTML帮助制作474.part2.rar

1.46 MB, 下载次数: 1374

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-2 09:48:23 | 显示全部楼层
第三部分

HTML帮助制作474.part3.rar

955.92 KB, 下载次数: 1318

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-3 13:23:18 | 显示全部楼层

帮助制作教程

本帖最后由 icecept 于 2015-8-31 11:28 编辑

网上资料加自己所用心得做出的HTML WorkShop Help 学习系统,希望对大家有所帮助地。

跟我学HtmlHelp Workshop.chm

324.21 KB, 下载次数: 422

回复 支持 反对

使用道具 举报

发表于 2007-11-3 14:02:20 | 显示全部楼层
不错,做帮助文件和做安装包一样,是软件商业化的必经之路,不久后我也要做专业级的帮助文件了。顶一下,谢谢楼主,收藏了!
回复 支持 反对

使用道具 举报

发表于 2007-11-4 11:41:45 | 显示全部楼层
我想知道如何在状态栏显示菜单的帮助或菜单的提示,就是有的软件在将鼠标移动到菜单上时,会在状态栏显示菜单的提示!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-6 21:35:36 | 显示全部楼层
原帖由 阳光宝宝 于 2007-11-4 11:41 发表
我想知道如何在状态栏显示菜单的帮助或菜单的提示,就是有的软件在将鼠标移动到菜单上时,会在状态栏显示菜单的提示!


请看下面图示:
第一步.jpg
第二步.jpg
第三步.jpg
回复 支持 反对

使用道具 举报

发表于 2007-11-6 23:17:57 | 显示全部楼层
原帖由 阳光宝宝 于 2007-11-4 11:41 发表
我想知道如何在状态栏显示菜单的帮助或菜单的提示,就是有的软件在将鼠标移动到菜单上时,会在状态栏显示菜单的提示!


你要的应该是这种效果?

wm_menuselect

[ 本帖最后由 nbdld 于 2007-11-6 23:21 编辑 ]
未命名.JPG

测试工程.rar

9.56 KB, 下载次数: 1131

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2023-3-22 20:12

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表