说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在VB中如何调用chm帮助文件?

编辑:说三道四文库 发布时间:2017-03-23 10:27
HTML文档下载 WORD文档下载 PDF文档下载
在VB中如何调用chm帮助文件?
用app.helpfile=app.path+"readme.chm"可在VB中用F1调用,可是用command1按钮如何调用.(不用sendkeys"{F1}")
用ShellExecute.

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

然后这样调用:
ShellExecute 0&, vbNullString, App.Path & "\readme.chm", vbNullString, vbNullString, vbNormalFocus

如何在Visual Basic 6中使用HTML Help(.CHM)。

  大家都知道在Visual Basic 6中可以通过ActiveX控件“Microsoft Common Dialog Control”调用WinHelp帮助文件,那么是否可以用同样的方法调用HTML帮助文件呢?

  I am sorry,答案是否定的。

  但是 Visual Basic 6 本身支持HTML帮助,我们完全可以直接调用HTML帮助文件而不借助于其它任何ActiveX控件或Windows API函数。

  你可以在工程属性中设置所需要使用的HTML帮助文件,或是在程序中直接将成员变量App.HelpFile( = help_file_name)的值设置为程序所需使用的帮助文件名,如上例应使用语句 App.HelpFile = "C:\Learn\Learn.chm" 来设置所需的帮助文件——当然,使用这样绝对的路径我并不赞成——你可以改为 App.HelpFile = App.Path + "Learn.chm"。然后在窗体上添加一个“帮助”按钮,并在该按钮的单击事件中添加如下代码(假设该按钮的Name属性为“cmdHelp”):

Private Sub cmdHelp_Click()

 cmdHelp.HelpContextID = 1 '选定ID号为1的主题

 SendKeys "{F1}"

End Sub

  当然,该按钮的HelpContextID属性值可以根据实际情况改为其它数值。OK!你的程序已经添加了美观而又方便的HTML帮助,能为你的程序增色不少呢!

上一版的《HTML Help 制作和使用》中没有讲到如果在Visual C++ 6中使用HTML Help,因为那时我还没把VC学好。在我用VC调用了HTML Help之后,才发现用VC调用HTML Help并不是一件简单的事。

  在Visual C++ 6中调用HTML Help没有现成的函数,需要调用HtmlHelp()这个API函数。而在调用这个函数之前,还需要在你的工程中加上HtmlHelp的库和头文件:

  1. 指定HtmlHelp.h的路径。选择菜单“Project -> Settings...”,打开“Project Settings”对话框。选中“C/C++”选项卡,选择“Category”列表框的内容为“Preprocesor”,在“Additional include directories”项中填入包含“HtmlHelp.h”这一文件的路径。这个文件你可以在你的硬盘上找,如果你安装了“HTML Help Workshop”,那么在“HTML Help Workshop”程序目录下有个“Include”目录就是。
  2. 指定HtmlHelp.lib的路径。按照与前面类似的方法,选择“Link”选项卡,选择“Category”为“Input”,在“Additional library path”中填入包含“HtmlHelp.lib”文件的路径。同样,在“HTML Help Workshop”程序目录下的"Lib"目录就是。
  3. 指定Lib文件。同样在“Link”选项卡中,选择“Category”为“General”,在“Object/librarie module”中填入“HtmlHelp.lib”。
  4. 最后,将HtmlHelp.h包含在程序中。你可以选择一个合适的位置加入“#include <HtmlHelp.h>”这一句话,但我建议你将这句话加入到“Stdafx.h”中。
  注:以上所有内容在MSDN的“Including HTML Help Support Files in an Application”主题中均有介绍,在“搜索”选项卡中输入查找内容为“HtmlHelp”即可找到该主题。

  最后是大家都关心的问题,如何在程序中调用HTML Help。

  如同在Visual Basic 6中使用HTML Help一样,首先需要定位帮助文件的位置。假如我们把帮助文件(.chm)放在程序路径下,那么我们该如何去获得程序路径呢?程序大本营上是使用的API函数GetModuleFileName(),例如,我使用以下代码定位程序路径和取文件的完整路径文件名:

  CString appPath;
  GetModuleFileName(NULL, appPath.GetBuffer(MAX_PATH), MAX_PATH);
  //注:使用该API函数得到的是程序文件完整路径文件名,去掉文件名后才是路径。
  appPath.ReleaseBuffer();
  int n = appPath.ReverseFind('\\');
  CString helpFile;
  helpFile = appPath.Left(n);
  TCHAR c = helpFile.GetAt(n - 1);
  if(c == '\\')
  helpFile += "HtmlHelp.chm";
  else
  helpFile += "\\HtmlHelp.chm";

通过HtmlHelp调用帮助文件(.chm)的程序代码如下:

  HtmlHelp(NULL, (LPCSTR)helpFile, HH_DISPLAY_TOPIC, 0);
  //直接打开帮助文件的默认主题。

  或

  HtmlHelp(NULL, (LPCSTR)helpFile, HH_HELP_CONTEXT, 1);
  //打开其中一个主题,实现上下文相关的帮助调用。 

  如此,在Visual C++ 6中,你也能调用HtmlHelp了。这次可是用的API函数,也就是说,略为改动你就可以用于……
使用HtmlHelp:
Const HH_DISPLAY_TOPIC = &H0
Const HH_CLOSE_ALL = &H12

Private Sub cmdOpen_Click()
    Dim hwndHelp As Long
    hwndHelp = HtmlHelp(hWnd, app.path+"readme.chm",HH_DISPLAY_TOPIC, 0)
end sub

Private Sub Form_Unload(Cancel As Integer)
    HtmlHelp Me.hWnd, "", HH_CLOSE_ALL, 0
End Sub


工程属性-〉选定帮助文件即可。
GZ
VB的OPEN对话框控件图示功能扩充 VB通用数据表格输出程序的设计 VB网格中输入数据 VB应用程序中打印条形码的两种方法 VB与Windows资源管理器互拷文件 VB中DOS文件名与长文件名的转换 VB中的Unicode 和 Ansi 格式 VB中如何实现文本查找功能 VB中自制文件搜索器 Windows 初始化文件的修改 -VB资料 Word 97与WPS97的完美结合 -VB资料 比较两个文件-VB资料 采用递归算法删除带有多级子目录的目录-VB资料 菜单项的动态装入 -VB资料 处理加了密码的MDB文件-VB资料 VB创建临时文件 从公共对话框控件中提取多个文件名称 -VB资料 从全路径名中提取文件名 -VB资料 打印MsChart之类的控件 -VB资料 谈谈在VB6.0中如何使用资源文件进行编程 动画图像分解在VB动画设计中的应用 多重文档界面设计方法-VB资料 恢复回收站中的文件 -VB资料 VB获得位图文件的信息 VB获得文本框中光标所在行的内容 VB获取程序工作路径的方法 VB获取文件或文件夹属性 基于VB的通用折行打印程序 基于VB和EXCEL的报表设计及打印 VB建立多级目录 -VB资料 VB建立快捷方式-VB资料 PreparedStatement为什么使用不了参数? 请教,在OUTLOOK中如何得到发信人的E-Mail Address 江苏 淮安的请进 建议程序员杂志对大连的程序员作一个调查 关于 New Collection 类型数组和列表框的问题(急!) 我現在遇到一個怪問題 怎么又冒出个Bug? 一个简单的数据库查询问题!50大洋送上!!急 谁能告诉我,反黄软件的原理是什么?? 请问如何读出一个dbf文件 如何从RM格式的电影中提取音乐? 怎么样 才能把一个数组转化为一个字符串啊 !!!请问我写的多线程CSocket连续接受用户请求的程序为什么不对?在线等。。/。 关于 New Collection 类型数组和列表框的问题(急!) 安装的中文版vs.net,调试c#程序时,提示不能调用类库,为什么? mstcpip.h哪儿有? 菜鸟的问题,请帮忙 .c and .cpp 一个关于mfc兼容性的问题? 翻译高手请进...... 求教:关于mp3算法的问题 这里的狗屁文章很多,不过看得让我笑个不停 RichTextBox右对齐怎么做? 关于大数据的问题? 关于CStringArray的使用问题???? lpd好麻烦!!! 关于Dependency的问题 有谁做过排课系统吗?具体的算法。。 我能单步跟踪么? 有没有高手指点一下,游戏需要OpenGL,怎么办? 请帮帮我!我用query+Updatesql更新时出现问题 一个全新的关于.net技术的网站--XML中华网(www.xmlchina.net)! 想让JLabel显示的字是从上到下的。该怎么办? 关于相同记录不能存在的问题 ?消息响应问题 好难的问题!!! 菜鸟有道数组问题请教!!!!!!help,help 关于CStringArray的使用问题???? !!!请问如何通过VB控制来将word文档中的1个图片替换为另1个图片!!!!! 好东东 !!!请问如何通过VB控制来将word文档中的1个图片替换为另1个图片!!!!! 请教高手,给高分!!!!!! 难呀,很多高手都说难!!!! 屏蔽右键??如何做。。。。。 有简单的访问StoredProcedure的方法吗? 简单问题:redhat linux7.2 支持中文输入吗? 谁有ASP上载组件的源代码下载 !!!请问如何通过VB控制来将word文档中的1个图片替换为另1个图片!!!!! Label控件拖放时,拖放结束(放开鼠标)触发哪个事件?急... 技术问题中的非技术问题》》》》》 请大侠看看这个怎么实现比较好!读取文件的一部分。。。 CuSO4·5H2O晶体是电解质吗? 同分异构体的类别异构高中范围里的类别异构 碳酸钙转化为氯化钙一定要加盐酸吗?如题 CuSO4·5H2o晶体放如浓硫酸中,后变白.这到底是体现浓硫酸的脱水性还是吸水性啊? 氢氧化钠与硅酸钠会反应吗但据说会生成偏硅酸钠,这是否可靠 水玻璃是什么物质 除去氯化钙中的碳酸钙 用什么办法 过碳酸钠和5水硅酸钠反应吗?和氢氧化钠呢?RT大哥……是过碳酸钠…… 春秋战国时期的故事我要几个*简短*的*有趣*的!一定要有趣有趣有趣! 除去碳酸钙中的氯化钙为什么要用水! 越南语里加油的发音是什么? 春秋战国时期的故事有什么?无 水银金,又称汞金!现在我想把金烧出来,请问有什么方法即可回收汞,又可以烧干净金呢?毕竟汞有毒,回收即可避免中毒,又可以回收水银!水银也不便宜啊,更重要的是买也比较难买到,想循环利用 越南语欢迎的发音是什么?急 硅酸钠的反应硅酸钠都和啥子东西在啥子条件下反应生成啥子啊?除了和酸反应生成硅酸,还和别的反应么?呃……玻璃的主要成分是硅酸钠、硅酸钙和二氧化硅…… CaCO3+NAOH=CaO+NaHCO3存在吗? 英语翻译()内的内容不用翻译,不一定非要逐字翻译,意思一致即可.1.能便宜一点吗?//// 便宜点!/// 最便宜多少钱?2.(询问旅店价格时)住旅店一晚上多少钱?3.请问这附近哪儿有汽车站?4.请问 (越南语)anh dung buon roi se co mot ngay anh se ngaq duoc mot nguong con gay tot hon em deq hon ,anh bi te co dau khong .di khang bac si thu co bi chi khong .te co dau hay viet cho em biet em nghe anh bi te em rat buon 为什么甲苯可以使液溴褪色,而不能使溴水褪色,是萃取优先与化学反映吗? 越南语里越南的发音是什么?急 春秋战国的故事 战国时期的“士”是指哪一类人,举出几个历史上有名的“士”,说说他们的故事不要很长,而且不要到“相关的问题”上去找,因为我觉得那的答案不太好,好长,又不是很符合题意.(时间紧迫啊 英语翻译kongdong dangdong dingdong kuihongkongkuangdangdong sikong dangdongmaihitinghongkui dongbaladuo空洞 当东 叮咚 亏红空旷当东 司空 当动脉hi挺红逵懂巴拉多 硅与什么反应生成硅酸钠 急!~~~~~碳链异构,官能团位置异构,官能团异构有何区别 古代文明为什么大都在两河流域 古代文明为什么大都在两河流域?四大文明古国在什么样的地理环境中发生和发展?古代罗马和古代雅典奴隶制的共同点是什么? NgocBinh说Đảo song tử tây là của VIỆT NAM 正丁烯和异丁烯到底是属于位置异构还是碳链异构 发源于两河流域的古代文明是A、埃及文明B、西亚文明C、印度文明 502胶水把剪刀粘住了有什么解决办法吗?今天用502的时候用剪刀把胶水前面剪了一个开口,但是没有想到的是胶水顺着流到剪刀上来了,等我发现的时候剪刀已经被502粘得很牢固了,请问有什么办 怎样除去CaCO3中的CaCl2 碳链异构的问题其中有四句话:碳链由长到短;支链由整到散;位置由心到边;排布由邻到间.这里面的第二句“支链由整到散”;和第四句“排布由邻到间”我不是很明白, 为什么亚洲的印度河,黄河和两河流域都是世界古代文明的发祥的?注意用地理知识回答 CaCl2中含有CaCO3杂质 如何除去 出售泡花碱即是水玻璃请有需求单位给我留言! 传统的农业灌溉方式我急 孙中山为祖国作出了怎样的贡献?求大神帮助..? 苯能使溴水还是液溴褪色?溴水与液溴有什么区别? 中国古代农业的发展,(包括农具,灌溉技术,农作物的种植,和经济中心的转移,重农抑商) 孙中山一生为祖国贡献什么 高二有机物,哪些能和溴水、高锰酸钾反应褪色、原因是什么?那些萃取褪色? 碳酸钙怎么转化为氢氧化钙 汞的颜色是什么? 关于碳链异构注意到这么一点,甲基不能接头,乙基不能接倒数第二,那是不是意味着,碳链是不是以C多的一条碳链为主链? 碳酸钙和氧化钙和氢氧化钙之间相互转化的关系 金属汞是什么颜色的 类别异构 没有违背同分异构 结构相似的原则吗? 战国时期的士是指哪一类人我们的语文课题 化学:汞是什么颜色? 战国时期的士指哪一类人,举出一些历史有名的士,谢还要举出士的一些故事, 谁知道战国时期的士啊?战国时期著名的士有谁啊?请用一句话概括 基于上题的回答请问CuSO4.5H2O是金属晶体却为为何不能导电呢? C5H12的异构类型是什么?和异构体种类? 关于战国时期的士的特点士在战国时期是一个特殊的阶层,这个阶层从地位上看是______的阶层,他们的特点是______ CuSO4.5H2O能导电么,是电解质么澄清石灰水能导电?是电解质么 高中化学同分异构体是否考虑立体异构 战国时期的士的故事是要士的故事 怎样得到CuSO4·5H2O晶体? 高中化学的同分异构体中有空间异构之说吗? 把氯化钙转换成碳酸钙?化学方程式就行了``谢谢了
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘