VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > vb >
  • vb教程之用api调用chm格式的帮助文件

HtmlHelp函数VB声明如下(API浏览器中没有,我自己照VC的声明改的): 

Private Declare Function HtmlHelpA Lib "hhctrl.ocx" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Long) As Long 

hwndCaller指出调用者的窗口,pszFile指出要调用的文件,uCommand是发送给 
HtmlHelp的命令,dwData是uCommand的参数。 

这个函数位于system\hhctrl.ocx中,你安装了IE4以上版本浏览器就应该有 

调用举例: HtmlHelpA Form1.hWnd, "C:\WINDOWS\HELP\CALC.CHM", 0, 0 这个是 
最简单的例子,uCommand和dwData的组合能产生许多非常复杂的功能具体情况可 
查找MSDN:HTMLHelp API Reference主题 

函数的C语言原型和所用到的结构和常量定义参见HTML Help Workshop\include\ 
htmlhelp.h 当然你必须先安装了Html Help Workshop 

hhctrl.ocx文件虽然后缀是OCX却不是控件,而是一个标准的DLL 

林夕: 

我有点不明白,VB中好象可以直接调用*.chm嘛,如下例,有什么不妥吗?请各位 
大虾指正。 

Private Sub Form_Load() 
App.HelpFile = "c:\a\a.chm" 注释:如不指明路径,默认为Windows目录下的Help 
Me.HelpContextID = 10001 
End Sub Private 

Sub Command1_Click() 
SendKeys "{F1}" 注释:按F1键,系统自动调用帮助 
End Sub 

hmg: 

我用一个小程序试验了一下 

form_load() 
app.helpfile="c:\1.chm" 注释:文件名是1.chm 
end sub 

......._click() 
cd1.helpfile="c:\1.hlp" 注释:cd1是公用对话框,我故意写成1.hlp 
cd1.helpcommand=&h3 
cd1.showhelp 
end 
以上程序居然能成功,莫名其妙可是在我的大程序里,就不那末顺利,奇怪? 

一个偶然的机会我发现 windows目录下的hh.exe可以调用chm的帮助,因此我想到可 
以用shell语句, ......... 
shell "hh.exe 1.chm,....... 
.......... 

hh.exe可以拷到任一目录下执行. 

相关教程