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

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

编辑:说三道四文库 发布时间:2017-08-21 03:19
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使用Windows内建的图标 VB使用Word的“艺术字”工具 VB使用WriteFile 块读/写数据 VB使用枚举变量 VB使用数组做属性 VB使用未安装的字体 输入限制确认-VB资料 熟悉VB的集成开发环境 鼠标取词-VB资料 谈变VB中APP.PAHT的注意事项 探讨高效的排序合并算法-VB资料 剔除INI文件中的注释部分-VB资料 提取可执行文件中的图标-VB资料 添加记录到文档菜单-VB资料 突破 SendKeys 的限制-VB资料 突破SendKeys的限制 -VB资料 圖面背景透明的技巧-VB资料 退出并关闭 Windows-VB资料 托盘程序详解(二) -VB资料 托盘程序详解(一) -VB资料 我怎样确定我的程序是否在运行?-VB资料 无重复随机数序列产生器 -VB资料 显示打开方式对话框建立文件的关联 -VB资料 显示动画鼠标图标-VB资料 修复VB5启动时可能出现的一个bug 修改IE的环境菜单-VB资料 修改安装向导生成的缺省安装目录 -VB资料 修改屏保口令 -VB资料 修改屏幕保护的口令 -VB资料 旋转字体 -VB资料 延时函数-VB资料 我在vs.net中使用cdo组件发信,编译出来的程序在没有安装vs.net的机器上报错(装了.net framework) 接着昨天的问题,Process.GetProcess()里的marchinename可以添别人的机器名。 写字板的颜色组合框是怎么做的? 错误代码:80020009??? 十万火急!谁知道怎么看sql都执行了哪些操作! 一个小问题? 哪有mandrake完整版下载? 他今天落荒而逃了!非常兴奋!!散分!!! 各位大虾帮忙,一个很菜的问题 请问如何在388手机上显示超过一屏幕的文本? 用vb6.0做的ftp下载的客户端程序 请问有为SUNPLUS16位机(MIUnSP&#8482;)开发平台的高手吗? 几经努力,没有经果.......(#if)真的很难吗? 涨分好机会,我有大问题:用什么方法可以实现——联接 电话网络(有线、无线)与电脑服务器,实现消息即时通信 欢迎多一些高手朋友提供 JAVA开发中的B/S方式,C/S方式到底是什么? 关于delphi中的查找赋值 >>>>>>关于new,delete 的简单问题《〈〈〈〈? 全国各地接吻比赛(想学习经验、姿势的进来) 数据挖掘关联规则算法的原代码能在哪里找到,譬如apriori算法? 请问16个主要颜色的RGB值。 使用过存储过程的大家帮忙呀。。。。。 websphere怎么啦? 救急:query回写 想学C#,有啥好书?? 如何动态地获得一个组件的属性、方法并调用? 请帮我看看这个小的asp程序为什么不能被网页调用?IE说这个网页不能显示 失业,散分!!! c++ builder 如何引用access数据据库的图片字段(ole对象),我用TDBimage控件不能看 CSS滤镜的使用!! 共同关注 失业了,散分!!! 大家有没有看网络小说啊!能提供几个经典些给小弟参考参考么? 失败!!失败!!! 失业了,散分!!! 怎样在java的桌面程序里打开浏览器呢 DataGrid如何实现鼠标放上去改变颜色? Foxpro数据库中,可否导出oracle可以操作的表呢?大虾指点啊! 请问调用存储过程中一个输入参数为nvarchar(24)的时侯,我在asp中的输入怎么会报错? 失业了,散分!!! 华工科技开目软件集成公司怎么样? 失业了,散分!!! 失业了,散分!!! 失业了,散分!!! 我用update更新互联网上的数据库,总数大约有700多条,在更新过程中程序窗口没响应了,无法最大化,最小化,关闭,但进度条仍然在走,更 水园公务帖[2003.03.11——2003.03.17] 无人回答的帖子,再发一次。up有分 快去微软件聊天室了,开聊了。 from表单中的参数无法传递? 急!急!急!急!急!我安装Visual studio 6.0中文版不能够成功,是什么原因?? 关于Oracle的数据类型问题? 请问在vc中怎样创建Outlook对象 温怎么组词 万有引力定律试题既然宇宙间的一切物体都是相互吸引的,哪为什么物体没有被吸引到一起 遮光器上的光圈作用?是光亮度还是焦距 祥林嫂是一个什么样的人物 为什么我们能够闻到远处的花香? 竹子在一年四季里的姿态,并与其他植物做对比.马上要写作文 哪个少数民族居住在福建土楼? 空气压缩机上的,触发器连接气压开关怎么接线,具体点 若一次函数y=4x-(2m-3)图像向上3平移个单位长度经过原点,则m=____. 若1克水中含有m个氢原子,则阿伏伽德罗可用含有m的代数式表示为? 靠旁路气压控制主路开关的阀门是什么阀门里走天然气,阀门上有另外一单独控制口,接空气,靠此空气压力控制阀门开关,能完成这个操作的 皮怎么组词 斗鸡 斗鸡 斗鸡 斗鸡一首很老的曲子了 以前听过 只知道叫 斗鸡 但是找不到 哪个朋友有 传一个吧可能名字不太确切 音乐里有鸡在一直叫 非常好听这都是什么回答 洗衣机气压开关拔掉管子用嘴吹一下,波轮就会转了,不过要用力吹,气压开关能修吗、换一个要多少钱,如果把上面连根线连起来,不使用气压开关会有什么后果 巴基斯坦位于什么处 我想问一下斗鸡爱好者们,真斗鸡和假斗鸡的区别是什么?是不是所有的的纯斗鸡的头下没有下冠? 六氟化硫开关气压低如何处理 印度和巴基斯坦从地壳板块分布上来说位于哪个板块? 清明节的诗 有几个写几个 清明节的词四字的十个 220kvsf6母联断路器气压到零的处理,对母联开关应如何处理 巴基斯坦地震与哪两个板块碰撞有关 用一尘不染这个词语的不同意思写话.(1)指环境清洁.(2)指人品纯洁,丝毫没有沾染坏习气如题 什么样的气动螺丝刀好用一. 半自动捶打式气动起子 二.全自动气动起子 三.手按式气动起子 四.下压式电动起子 请问哪种好用啊,万分感激. 巴基斯坦和印度尼西亚位于哪个板块? 风马牛不相及 现在人们用来比喻什么 修摩托车气动螺丝刀要用5H还是10h……气动螺丝刀5h和10h是什么意思 黄河中上游水能丰富的原因 有谁知道[风马牛不相及]是什么意思?怎么来的? 黄土高原的土层一般厚多少米 直线y=4x+4向右平移2个单位长度,平移后直线怎么表示 "唯是风马牛不相及也”怎么理解? 九年级所有元素的化合价是多少? 把直线y=-4x-3向右平移4个单位长度得到直线 自来水表由镇自来水公司安装吗家里刚买了房子,打算安装水表,是由市级自来水公司安装还是镇里的自来水公司安装? 四渡赤水出奇兵简介 我们能闻到花香是---------现象说明了什么 如图为某次试验时打出的纸带,打点计时器如图所示为研究匀变速直线运动某次实验时打出的纸带,打点计时器每隔0.02s打一个点,图中O点为第一个点,A、B、C、D为每两点选定的计数点.根据图中 关于四渡赤水出奇兵调虎离山袭金沙,毛主席用兵真如神.“调虎离山”这个成语在表达内容方面有什么作用? 人能听到回声的条件是回升到达人耳比原声至少晚0.1s,由此人要能听到自己的回声,应离障碍物至少多远? 高3物理复习电磁学基础不好,应该怎么办?我初中的时候电学就不怎么样,不知道该怎么去学.而且上课听的在怎么认真.回家了还是什么都不会.很烦躁.现在高3开始复习电磁学.做题没思路.而且 四渡赤水出奇兵的背景 塞下曲六首其一中的“天山”是天山山脉还是祁连山脉? 花店周围闻到花香能证明分子间有间隙吗谁第一个有反应加五悬赏 《四渡赤水出奇兵》中的一些问题1、求四渡赤水的故事.2、两个重不同的读音和意思.敌重兵,压黔境.乌江天险重飞渡. 皮的组词 为福建土楼设计广告语 星期怎么组词 噪声的声波的特点是什么 自来水表不显示怎么回事? 为了保护听力,噪声控制在多少分贝一下? 皮组词有哪些 求解答大恩不言谢 风马牛不相及可用什么谚语来说明风马牛不相及这句成语的意思可用什么谚语来说 当噪声通过森林时,树叶会吸收部分声波使噪声减弱.下表表示林带宽度与噪声减弱程度.林带宽度/m 10 20 30 40 50 60 707/10 6/10 5/10求大神把表填完,再说一下规律. 水通电发生变化是,变化的微粒是( ),没有发生变化的微粒是( ) 风马牛不相及意思相近的一句俗语给一句俗语! 用声波的干衍减低噪音 “束水冲沙法”原理? 万有引力定律的题目1.地球质量大约是月球质量的81倍,一飞行器在地球和月球之间,当地球对它的引力和月球对它的引力相等时,这飞行器距地心距离与距月心距离之比为____________.2.已知地面的 风乍起,后面是什么诗句 上海车牌价再破8万 下月起继续实施有2013韩国小姐素颜照曝光 网友高呼温州:民资发起设立民营银行试点方案已冷空气今起渗透影响 明后天早晨稍微有国考报名人数预计破130万 仍有20俄防长:叙利亚例子表明恐怖分子获得化女子当街跳舞一丝不挂 众人围观无人给温州将军大酒店门口10个窨井盖突然炸杭州文一路超市门口 年轻流浪姑娘产下为养老保障拾遗补缺 多元化养老日渐“马英九宣示向黑心厂商全面开战:统统揪火车退票费四舍五入 今后将精确至0.政府年终突击花钱遭质疑 专家称与预算今年年底 杭州-深圳每天开行6对动车圆通就快递单个人信息被卖致歉 网民不杭州市区全面启动机动车“油改气”工程新旅游法实施将满月 导游不管购物反遭俄媒议论“中国反腐经验” 称中国采取阿富汗16名总统候选人被取消资格 1辛格访华获“不寻常待遇” 两国握手世19岁女孩把自己包装成富家女 梦想嫁《结婚吧》剧情再纠结 网友直呼焦阳杨湘阴农民棋王争霸赛闭幕 女选手盼来年湘潭残疾男子酒驾被吊销驾照 为继续开林志颖否认Kimi身价15万:他的身雅礼学子创商业方案 问鼎全国足球管理常德男子伪造售卖高校毕业证 被抓获判李湘舒高周笔畅 盘点曾被湖南台封杀的湘潭男子虚构项目高息当诱饵 诈骗14岳阳公务车张贴统一标识 \"带标\"日参院特别会议通过设立NSC法案 力新疆伊宁举办丝绸之路经济带发展研讨会武警曲靖支队退伍老兵泪别“八一”军旗昆明消防扎实抓好老兵退伍系列教育台湾媒体团韶关探访北伐纪念馆中国\"和平方舟\"号是首艘抵达菲灾国际全球监测航天系统或保护地球免遭小四川拟出台城镇住房保障条例 骗租骗购志愿者服务文化成果展各省典型人物之江6球惨败博阿斯急寻锋 曝热刺购皇马超“森林保护神”退伍返乡 告别“绿色家深圳路边临时停车“免费午餐”即将被取
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘