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

怎样在VB中调用.chm帮助文件?

编辑:说三道四文库 发布时间:2017-12-16 09:03
HTML文档下载 WORD文档下载 PDF文档下载
我想在VB中调用.chm帮助文件,请高手指点。按一下command控件就显示自己编的.chm帮助文件。
如何调用chm帮助文件
我把帮助做成chm格式,请问如何在VB中调用?  
---------------------------------------------------------------  
 
在VB中调用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函数:  
先声明如下API:  
Option  Explicit  
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的参数。    
然后在过程中调用:  
private  Sub  CmdHelp_Click()  
dim  i  as  string  
i  =  app.path  &  "\help.chm"  '用变量i记录与主程序同目录下的help.chm帮助文件  
HtmlHelpA  Form1.hWnd,  i,  0,  0  
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()  
dim  a  as  long  
Dim  b  As  String  
b  =  App.Path  &  "\help.chm"  '用变量b记录与主程序同目录下的help.chm帮助文件  
a  =  ShellExecute  (0,  "open",  b,  "",  "",  SW_SHOWNORMAL)  
End  Sub  
以上五种方法各有优缺点,从代码的简单上讲,建议使用第二种方法。从功能上讲,建议使用第五种方法,因其不只用于打开CHM帮助文件,还可用同样的格式打开、打印或查找一个文件或文档(参见该API的说明资料)。    


               问题解决,请结贴!
可以在工程/属性/通用页框中添加你的帮助文件
'******************************************* Html help 声明
Public Const HH_DISPLAY_TOPIC = &H0
Public Const HH_SET_WIN_TYPE = &H4
Public Const HH_GET_WIN_TYPE = &H5
Public Const HH_GET_WIN_HANDLE = &H6
Public Const HH_DISPLAY_TEXT_POPUP = &HE   ' Display string resource ID or
                                          ' text in a pop-up window.
Public Const HH_HELP_CONTEXT = &HF         ' Display mapped numeric value in
                                          ' dwData.
Public Const HH_TP_HELP_CONTEXTMENU = &H10 ' Text pop-up help, similar to
                                          ' WinHelp's HELP_CONTEXTMENU.
Public Const HH_TP_HELP_WM_HELP = &H11     ' text pop-up help, similar to
                                          ' WinHelp's HELP_WM_HELP.

Public Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Long) As Long
'*******************************************

'调用*.chm中的某个页面

Private Sub cmd_style_Click()
    Dim hwndHelp As Long
    hwndHelp = HtmlHelp(hwnd, App.Path & "\MakeScript.chm::/eb_style.htm#1", HH_DISPLAY_TOPIC, 0)
End Sub
VB怎样接收电子邮件(POP3协议简介) VB怎样用VB得知系统当前是否处于internet链结状态 VB制作自己的网络搜索软件 自动更新工作站的应用程序-VB资料 自己的IE——用VB制作浏览器 VB6制作Win98风格的工具栏 VB实现窗口的弹出式菜单 用VB做个漂亮的进度条 Cool 3D 浮動按鈕的模擬作法-VB资料 VB 5.0中实现鼠标拖放 VB5.0下工具条的制作 VB5.0中基于桌面的屏幕技巧 VB5.0中实现字体闪烁效果 VB5实现窗口图像缩放、滚动技巧 VB6.0动态加载ActiveX控件漫谈 VB编程步步高-表单篇 VB编程常见问题 VB编程中如何锁定鼠标 VB创建位图菜单 VB实现按钮浮动效果 VB应用程序中的工具提示和状态显示 VB中处理长列表框项的两种方法 VB中多级下拉列表的实现 VB中防止将重复项目添加到列表框控件中 VB中实现菜单分割 VB中实现带预览的对话框 VB中实现同一窗口的多个实例及控件的动态增减 VB中阴影字体的实现 VB自定义数据结构的传输转换 Visual Basic 窗体背景花纹的实现 Visual Basic 中的界面设计原则和编程技巧 关于日期类型,在线等,马上给分 sql*plus登陆不进去了!! 请问怎么调试DLL中的代码啊??? dddw的数据取值问题,百思不得其解。 再问一个简单问题,为啥函数总是执行两次? 100分求助使用axis开发web services的问题 求一个字符串简单加密算法源码,300分决不食言!!!!! 如何使得下载的excel文件在新页面中打开? datalist问题 帮帮这个菜鸟!!! 新手求助?谁有较好的打印控件,或较好的解次方案? 如何在程序部署时授予某文件夹对文件的写访问权? 不能重定向是什么原因? 想用Mediaplaer控件播放某个声音文件若干次,怎么控制? 如何通过窗口句柄来获得窗口所在进程的ID 怎么找到DataGrid中的Table呢? 请问用VB怎么才能把1个数据库里的表全部读入LISTBOX里? JmaiL 发邮件的问题?? 备份还原问题 如何用钩子得到中文啊? interbase的存储过程中如果想返回多条结果应该怎么办? 请问!谁能提供算命、测字等原代码和后台库!!500分相送!!!! 我的用客户端连上ORACLE,怎么我的SQLPULS打开中文全是乱码,执行语句后看不到结果是什么 方案讨论:如何自定义并实现错误与例外Exception处理对象,并建立里统一的ErrorMsg 读数据库错误??急急急,在线等(马上给分) 缓存 到的 是什么定义啊 (斑竹来 告诉我吧) 系统分析师、系统设计师有什么区别? DB2技术讨论(1)如何简单理解表空间的定义 vc的ado数据库连接问题 请问linux的个人版和服务器版到底有什么区别?? DB2技术讨论(2)如何简单理解表模式的定义 int& operator[] (unsigned i); 存储过程问题 DB2技术讨论(3)如何处理索引 马上结:我用ASP和JSP分别写了一个人主页,可是服务器只支持PHP,所以我要写PHP.. 我要构建一个网吧?回答问题者都有分 DB2技术讨论(4)如何处理大量数据的增删 郁闷,没有理由,再散分一百,随便进来聊聊 昨天真的真的受了刺激 怎樣將dbedit控件的事件和它所在的form方法相關起來? 如何实现DOS工作站连接到LINUX服务器 DB2技术讨论(5)如何在建好的数据库中设定数据库和表的维护信息 feeboby(诺曼之路) 请进,刚才IE出现js的问题,帖子结了,但分没加上去,另开新帖,100分送上 如何把两个系统合并为一个系统(两个独立的系统) 如何实现集成?? 请教一个apache2.0加tomcat4.3.x时访问目录控制问题 那里有Zend的反编译软件下啊? 大家给我提建议拉,java项目该如何做?交友 这样的asp.net程序消耗是不是太高? 满分求救: 通过 scope="session" 定义的bean 我想继续在包含页中使用。。 大家给个名字建议吧 BDE问题 对于自己有信心的人应该很简单!甲乙两队共修一段公路,原计划甲乙两队修的长度比是5:4.由于乙队中途抽出几天去执行别的任务,因此到完工时,甲队比原计划多完成20%.已知甲队实际完成3.6 对自己智商有信心的来,题不难,但不是每个人都做得出来的.请用阿拉伯数字填空,使下面十句话都正确.0在这十句话里出现的次数是_____; 1在这十句话里出现的次数是_____; 2在这十句话里出 辨一辨,据词定义前途无量 (1过去 2将来)空前绝后 (1过去 2将来)前功尽弃 (1过去 2将来)前程似锦 (1过去 2将来) 此中有真意,欲辨已忘言. 欲辨已忘言中的辨字什么意思 此中有真意,欲辨已忘言.中“真意”指的是什么? 振奋不已的已什么意思 怎样理解“此中有真意,欲辨已忘言”不准复制,还有一楼你的是这儿来的吧······ 九品中正制和世卿世禄制有什么不同 世卿世禄制和九品中正制有什么区别? 奋进是什么意思? 美国一动物园训练小猎犬辨识北极熊是否美媒称福利改革东盛西衰 财政压力致步单眼皮变双眼皮 韩国总统朴槿惠陷“整墨尔本盗贼猖狂作案 光天化日载走百余英国摄影师遇棕熊后大声向其问好巧妙脱墨西哥劫匪亡灵节假扮鬼怪抢劫珠宝店新西兰华裔科学家表现杰出 获赠昂贵实西班牙部分边境安装“铁刀网”防非法移澳一女子在自家后院做园艺工作时被毒蛇澳大利亚赃车轮胎金属熔化 致偷车贼三“携手-2013”中印陆军反恐联合训裘援平会见列席全国政协十二届五次会议台媒:蔡英文当局唯一“成就”是搞意识姚振华的“罪与罚”:为何遭证监会、保央视报道首次证实:歼20已经服役(图中船重工董事长:资产证券化是实现混合鑫根资本创始人:乐视是所有投资中故事新三板迎史上最重要考试 近千名董秘必网富全网营销落地启动服务大会带领企业21.9%多晶电池超“单晶+PERC淄博沂源县历山街道教体办提升校园卫生重构线下商业 口碑携手700家开发者文人官人重生之超级召唤女舵主江湖传奇求生在第三帝国破天化穹嵬城银河维和部队华夏脊平行入侵神通武道寂灭乾坤龙门山地震遗址公园旅游平峦山公园旅游天子庙旅游沿河城旅游幽州大峡谷旅游国家森林公园滑雪场旅游绥芬河国门旅游奥帕拉拉冒险岛水公园旅游中南民族大学旅游御水温泉旅游珠江公园旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘