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

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

编辑:说三道四文库 发布时间:2017-10-18 03:49
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
扎克伯格的败笔?Facebook Home可能无家可归 走进eico design,仰视设计师 乔布斯顾问承认苹果的命名糟透了 罗永浩:一百万年薪!招聘软件研发总监 开源的:helios移动应用后端服务框架 IE11将支持WebGL 或将OpenGL映射到DirectX 基于云端的3D渲染和协作平台Lagoa:仅需一个浏览器 大数据提速,IBM 推面向Hadoop的PureData大数据机 游戏开发者的盛宴:2013 CocoaChina春季开发者大会强势启动 开放还是关闭API?CIO做决策前应考虑的六个建议 Python 2.7.4发布,更快的IO模块 如何拒绝沦为服务的商品,并收回对数据的绝对掌控 最阴险的代码?尽在“邪恶”的Underhanded C Facebook Home出阴招:Social皮,Android心 国内最火的五款HTML5前端开发框架 TIOBE 2013年4月编程语言排行榜:Objective-C四年来排名首次下滑 MeeGo复活!Sailfish OS智能手机 SDK发布 10亿美金!传闻谷歌要收购WhatsApp 从打造国内最大的OpenStack公有云开始 展望HBase的未来 你的数据库安全吗?CryptDB数据库软件可查询加密的SQL数据库 收藏!斯坦福Andrew Ng教授“机器学习”26篇教程全译 美国云计算价格战爆发 王寒:12岁儿童,该怎样开始iOS开发? 陈昊芝:腾讯!让我说你什么好? Top Paid与Top Grossing定价策略的差异 Android版百度云推送正式发布 为何开发者应推动公司开源? 从AppGratis被下架说起,苹果或将再次付出代价 58同城的“烦恼”——8K月薪安全工程师引发的入侵 软件开发实践的24条军规 为什么用net send发送的消息有关不掉,点了好多次确定也没用。 怎么保存到数据库中?急急急! 电脑出问题了。 tomcat4.01+apache2.046组合问题:单个的都能运行,...可以加分.. %u的问题 如何调整对话框上工具栏的状态 关于query控件的一个问题 如何结束一个线程? FastReport怎么将没有记录的地方也画上格子??? 我的oracle9装上去之后怎么有7。2G那么大??并且还连不上MANAGEMENT SERVER只能独立启动??请指教!! Fastreport与quickreport那个更好用? 进者有分. 强烈要求铲除全国所有的收容所!!! 要用什么软件才能将CMOS参数备份到某个文件夹中? 请问怎么在建表代码里定义关键字? 请问把数据写入ListView控件内,有什么办法可以快点? win2k server dns 求助! 我在易趣上竞的一个数码相机,只要250元,但是只能拍26张相。我不知道是真是假? 一个搞不定的恶意网站 cout与printf的问题 没有路由怎样用一台服务器实现300台左右的电脑上网? ResultSet里读出数据的参数问题,马上给分 netvt(唯她 v1.1.1),进来拿你应得的分 如果我的程序中用了VFP,但是用户可能并没有装VFP,有什么好的办法直接替用户解决了这个问题,而不是提醒他自己去装 怎么保存到数据库中?急急急! 我用treeview显示数据库的数据,增加一条新记录后,要怎么样才能马上在treeview显示? 无法传值问题,高手急救!!!!!!!!! 在线等待:怎么为datagrid控件的某一格赋值? 请教如何在input上传筐里面限制文件类型? java的图形设计比如swing有前途吗?大家来讨论下,迷惑中。。。 计算机静电问题!! 错误在那里 请教批量update出错问题 请问串口方面的? QQ使用MFC42.DLL, 数据库的记录有文本、有图片、我想给它排成word样式的A4版预览、再打印如何实现 请问,如何在Form中画图啊??/ 水晶报表问题。急呀!! 一个奇怪的问题 TreeNode控件有折叠下一级节点这个命令吗? 大家好,请帮忙提供在C#中做帮助文件的好的方法或网站吗?谢谢了 QQ发送信息老是附加一个网址,有什么办法搞定它? 操作系统挂了,重装后如何恢复ORACLE DATA? 初学不懂:调用ActiveXObject("Microsoft.XMLHTTP") 时用的什么命名空间? 创建临时表 有关页面显示的问题,进来吧,高手们! 为什么我在VC调试一个程序提示出错后,在调整一个正确的程序也提示有错误,是怎么回事,是要在VC里设置什么吗 EJB Transaction problem? 内存不可读错误,是GobalAlloc分配内存失败么? 请教高手,如何在ASP的新闻发布管理系统中实现表格和图片随意的插入到新闻文本中。 请教:有谁用过 XMLHTTP 或者 HttpWebRequest ? 小问题,在线等 成长的桥阅读文中画横线的句子在文中起什么作用大神们帮帮忙 关于运动的合成与分解,以下说法正确的是( ) A.一个匀加速直线运动可以分解为两个匀加速直线运动 B.一个匀减速直线运动可以分解为方向相反的匀速运动和初速度为零的匀加速直线运动 C 120磅~~~~~~~~~~~~~~~~~120磅等于多少斤呀? 文中画横线的句子爸爸的花儿落了有什么含义它与文章要表现的中心有什么关系拜托各位大神 诈骗的定义是什么警察不找他他不是会还钱的,在说他和我签的合同,可是房子是他妈妈的. 龟鹤共用100个头,350只脚,龟,鹤各多少只?方程题带解设 解释画横线的句子(宋国后面还有有一个“笑”) 网络诈骗的含义是什么 小明放一群鸭子,岸上的只数是水中的3/4,从水中上岸15只后,水中的只数与岸上的只数同样多,这群鸭子一共有多少只? 哪位大神可以给我解释一下图中画横线的那句话是什么意思?~~::>_ 十百千,猜四字成语 龟鹤共有100个头.350只脚.龟.鹤各有多少只?为什么不列方程式.假设法有理论支持吗. 有限集合A=B的充要条件是什么?全题叫:有限集合S中元素个数记作card(S).设A、B都为有限集合,判断下列正误.我只问问A=B的充要条件是card(A)=card(B)为什么是错误的?正确的应该是什么? 尔虞我诈的意思是? 小明放一群鸭子,岸上的只数是水中的四分之三,从水中上岸15只后,水中的只数与岸上的相同,这群鸭子共有几 氢气有几个质子阿我还知道你们是怎么只到你们是怎么知道化学元素的质子数阿 必须用记的嘛 韩愈 早春呈水部张十八员外(其二)的赏析是什么? 集合与充要条件的关系为什么A是B的真子集,A就是B的充分条件,B是A的必要条件? 要是总有人跟你说,哟哟切克闹,切克闹啊切克闹. 求几道容易出错的高二物理题要求容易出错 电影“万有引力”片头文章那段是在哪个机场拍的? 哟哟切克闹什么意思 龟鹤共有100个头,350只脚.龟,鹤各多少只?列方程,要准确解说 龟鹤同笼,共有51个头,172只脚,请问龟、鹤各有多少只?最好用列方程,毕竟我也才5年级 哪里出来的? 在2~9中,不管如何放置,镜子中的像都和原来数字一样的是 龟鹤同笼共有51只头,172只脚,请问龟与鹤各有多少只 画横线的题求解答 龟,鹤共有200只眼睛,350只脚.龟,鹤各有多少只?用方程解 龟鹤同笼,共有51之只,172只脚,龟鹤各有多少只 嘿哟哟哟,切克闹,切克闹 在数字3~9中,不管如何放置,镜子中的像都和原来的数字一样的是( ). 龟鹤同笼,共有51只头、172只脚,请问:龟与鹤各有多少只?用方程解答 哟哟,切克闹. C语言解决应用题 龟鹤共有100个头,350只脚.龟、鹤各多少只?C语言解决 龟鹤共有100个头,350只脚.龟、鹤各多少只?怎样用C语言得出答案啊 .····求源码 鸽子多少天出 【高一数学集合部分】“xy>0”的一个充要条件是__________1.“xy>0”的一个充要条件是__________2.集合A={x|-20是x2+y2>0的 ____ 条件6.集合A={x|-2<x≤1},U={x|x≤3},则CuA=_______7.x属于A交B______x属 万有引力是在哪里拍摄的?文章演的那个,知道的告诉下, 风烛残年的含义? 某船从O处出发,沿北偏东60'方向行驶至A,又向正东方向行驶至C,再朝与出发相反的方向行驶至B,求∠ACB的度数快.这是一道关于平行线的性质的题目...可能要用到同位角,内错角,同旁内角的... 万有引力中,文章戴的手表是什么牌子,哪个型号的? 风烛残年 的对应成语是什么 设集合A=(-无穷大,1],集合B(2a+1,4a)(1)若A交B=空集,求a的取值范围(2)若A并B=A,求a的取值范围 《万有引力》里文章机场那段之后就没有了吗? 风烛残年是什么意思 求道高二物理题在光滑绝缘的水平面上有一个不导电的弹簧,弹簧的两端分别与金属小球A,B相连,若A.B带上等量同种电荷,弹簧伸长x1,若让A.B所带电量都曾为原来的2倍,弹簧的伸长量为x2,则x1与x2 同一直线上的两个力作用在同一物体上.关于它们的合力下列说法正确的是( )A.合力一定大于其中的任何一个力B.合力一定等于这两个力的大小之和C.合力可能小于其中的任何一个力D. 风烛残年 意思 鼻子红的长长的背上有黄又有绿的是什么动物 在做“互成角度的两个力的合成”实验时,以下说法中正确的有( ).如题 谢谢了A. 用两只弹簧测力计拉橡皮条时,应使两细绳之间的夹角为90°,以便算出合力的大小 B. 用两只弹簧测力计拉时,结 风烛残年什么意思啊啊啊 一艘船沿正东方向航行,行至A处折向南偏东60°方向航行,行至B处后,若该船仍向正 设A,B为两个集合.且A∪B=B,的充要条件? 为什么说平面向量是正确的?它的导出背景是什么?是牛顿力学吗?可它在相对论中它也不正确啊?普通的数学都是从公理出发,通过严密的逻辑推理导出规律,减乘除的运算法则都是从加法的运 算 25℃、l0lkPa下,22.4L氢气含质子的数目为3NA, 蓄意诈骗的定义我公司与一家厂家签订了一批货物!全额付款后对方只发给我公司不到1/3的货,我公司一再催促对方发货!时间转眼过了四个月了还是没见对方发出货物!要求其退款也迟迟未见退 集合A与集合B互不包含但有公共部分(关于充要条件的问题)那么X属于A是X属于B的____条件 这个是什么星系? 关于诈骗的定义本人与人合作项目,给对方发货物.对方承诺货到结款.结果货到了两车只是把运费付清,货款一直没有结.本人出于无奈让对方出具了一份欠条.请问这样构不构成诈骗?我目前应该 龟鹤共有100个头.350只脚.龟.鹤各有多少只?用替换法解 亚马孙森林4年发现441个新物种加拿大育空地区寻求中国矿业投资《中国好声音》庆功会 210万网友参男女平等程度排名:日本靠后 降至史上澳大利亚否认山火与全球变暖有关 总理德媒曝美国驻柏林大使馆涉嫌参与对默克俄险再发生公交爆炸 一乘客携重量炸药日媒指韩军独岛演习或为对抗日方发布独新西兰法庭批准金矿在居民楼附近采矿引安倍晋三自曝吸烟史 称未考虑被动吸烟默克尔促美签不监控协定 但不中止美欧叙利亚工程师开发新软件 可发短信预警奥巴马顾问称监控门对美与盟国关系构成联合国将向叙利亚民众提供28.6吨紧黎巴嫩商人因内线交易获1400万欧元德媒曝美国驻柏林大使馆涉嫌参与对默克张玮、张赫宣和金池将带粉丝组队飙歌安理会谴责马里特派团遇袭事件 吁迅速白宫宣传乳癌防治月活动 点亮粉红色灯韩国双胞胎整形“扭转命运” 戽斗脸变澳大利亚否认山火与全球变暖有关 总理校长是学校食品安全第一责任人女子遇到“懒老公” 房间脏得像“垃圾《我们有一定的孤独:梵高的爱和秘密》《归来》之后,张艺谋要拍科幻片湖南机场集团:擦亮“窗口名片”调整成人高等学历教育学费标准“真正让老百姓满意”热心的老党员湖南省2014年度注册会计师考试报名龙山干部进村入户解难题东莞福彩中心全体职工深入站点“角色转小学初中英语教育脱节? 有老师建议学全省开展爱路护路宣传教育月活动上爱牙车看牙更方便舒马赫的眼珠转动啦!“XP退役”引发自主创新反思国家黑茶质检中心贵广南广铁路与广珠铁路顺利连通小学女生因跟同桌说“悄悄话” 被老师赠送的会员礼物有问题能否索赔《宫锁连城》=经典琼瑶剧糅在一起变大
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘