金桥科普  
设为首页 关于我们 邮箱登录
科普聚焦时代科技科普生活科学技术自然科学航空航天科技博览历史考古电脑IT
您现在的位置: 首页 >> 科普频道 >> 技巧实践 >> 文章详情
CHM帮助文件的编程实现

郑家伟 赛迪网-中国计算机报 2001-10-29


  CHM文件是微软公司开发的新一代基于HTML的帮助文件格式,它一问世就以其易用性和新颖的界面赢得了广大编程一族的喜爱,目前大多数软件都用它来制作应用程序的帮助文件。

  关于Html Help Workshop的用法已有文章介绍,在这里笔者着重讲述在实际编程中如何调用CHM文件,从而建立起应用程序的帮助系统,本文以Visual Basic 6.0为语言平台。

 
  声明HtmlHelp API函数

  由于HtmlHelp API 并没有集成在Windows操作系统的API中,因此不能直接调用HtmlHelp.lib 库函数,但HtmlHelp API的功能位于hhctrl.ocx中,这样可以通过调用hhctrl.lib库函数来显示帮助文件,其声明格式如下:

  Declare Function Htmlhelp Lib "hhctrl.ocx" Alias "HtmlHelpA" 

  (ByVal hwndCaller As Long,

  ByVal pszFile As String,

  ByVal uCommand As Long, 

  ByVal dwData As Any) As Long 

  具体参数含义如下:

   hwndCaller 调用该函数的窗体句柄

  pszFile 帮助文件的名称和位置

  uCommand 帮助类型

  dwData 与uCommand相匹配的附加参数

  定义uCommand 常数

   Const HH_DISPLAY_TOPIC = &H0 

  Const HH_DISPLAY_INDEX=&H2

  Const HH_HELP_CONTEXT = &HF

  Const HH_DISPLAY_SEARCH= &H3

  Const HH_DISPLAY_TEXT_POPUP= &HE

  接着指定CHM文件的名称和位置:

  App.HelpFile=App.Path & "Sample.CHM"

  程序调用

   调用缺省主题帮助

   Call HtmlHelp(hwnd,

  App.HelpFile,

  HH_DISPLAY_TOPIC, 

  ByVal "Default.htm")

  此调用方式用于没有上下文ID号的情形,dwData可指定一个在CHM文件内的缺省htm文件,也可取NULL,这是HtmlHelp API最基本的一种用法。

  调用关键字帮助

  Call HtmlHelp(hwnd, 

   App.HelpFile,

   HH_DISPLAY_INDEX,

   (DWORD)"关键字"))

  此调用方式中dwData取索引文件(.hhk)中存在的关键字。

  调用上下文敏感帮助

  Call HtmlHelp(hwnd,

   App.HelpFile,

   HH_HELP_CONTEXT, 1000)

  此调用方式用于含有映射信息的CHM文件, dwData取映射表中存在的ID号。

  调用全文搜索帮助

   Dim Query As HH_FTS_QUERY 

   Call HtmlHelp(hwnd,

   App.HelpFile, 

   HH_DISPLAY_SEARCH, 

   (DWORD)& Query) 

  DwData参数指定一个指向HH_FTS_QUERY结构的指针。

  调用弹出式帮助

   Dim Popup As HH_POPUP 

   Call HtmlHelp(hwnd,

   NULL,

   HH_DISPLAY_TEXT_POPUP,

   (DWORD)&Popup)

  PszFile通常取NULL,也可以指定一个CHM和一个在该CHM文件中的TEXT文件,DwData用于指定一个指向HH_POPUP结构的指针。

  指定显示窗体形式

  由于显示帮助文件的缺省窗体是在编译该CHM文件时的窗体,因此为了更好地控制帮助文件的显示,在制作CHM文件时,可以自定义一个窗体形式。在程序中可以通过两种方法来调用自定义窗体。

  1.当uCommand 为HH_DISPLAY_TOPIC或HH_HELP_CONTEXT时,在pszFile参数中用“>”符号,其后跟上窗体名称即可。如pszFile取:

  App.HelpFile & "> MainWin"

  2.用HtmlHelp函数直接指定:

  Dim WinType As HH_WINTYPE 

  Call HtmlHelp(hwnd,

   App.HelpFile &" > MainWin",

   HH_SET_WIN_TYPE,

   (DWORD) &WinType)

  必须声明的是,以上叙述中使用的“Sample.CHM”、“Default.htm”、“关键字”、“1000”和“MainWin”等均属举例,应用中需要根据自己的具体情况来设置这些参数的实际值。

  至此,应用程序的帮助系统就建立起来了,当然,要把帮助系统做得更完美一点,还有更多的工作要做。

  发表评论 写信给编辑 关闭窗口
同栏目内容
· 让你的电脑启动画面绚起来 2007-09-12
· 小技巧帮大忙 极点五笔 2007-09-05
· 如何提高迅雷的下载速度? 2007-09-03
· Vista小技巧 消除红眼 2007-09-03
· 千千静听实用小功能 2007-08-29
· Windows 自动登陆的简单方法 2007-08-20
相关内容
近期主推
我国首架自主产权飞机完成
·我国首架自主产权飞机完成
·机器人版"千手观音"惊艳亮相
·西藏发现青藏高原最大冰川群
·中日: "月亮女神"携手"嫦娥"
·行星大碰撞砸死恐龙催生人类
·美研制会飞汽车定价9万美元
近期热门
科学家解开中子星爆发之谜
·科学家解开中子星爆发之谜
·英海域惊现大龙虾为普通龙虾5倍
·新物种金蛙体表有剧毒
·我国嫦娥工程计划测量月球
·精神病药物可治多种癌症
·视觉震撼:来自海底的精灵
近期焦点
美国发现极其罕见的白化银鲛(图)
·美国发现极其罕见的白化银鲛(图)
·美国展出罕见连体双胎双头龟
·波罗的海发现罕见短吻真海豚
·能帮你做大扫除的机器人[组图]
·法老墓3000年前坚果保存完好
·广西发现罕见溶洞钟乳石有30万年
金桥科普是一个公益性栏目,内容由作者提供或摘自互联网,其目的是向广大网民普及科学技术知识。如果您发现本网站转载或摘编了您拥有著作权的作品,请通知我们(电话:023-63659911),我们立即删除。
关于我们 | 网站地图 | 用户注册 | 广告客户 | 招聘信息 | 业务信息
Copyright@2006-2009 JQInfo.com,WONDER. All Rights Reserved
重庆科技咨询中心.重庆网得信息技术有限公司.版权所有
Email:webmaster@jqinfo.com
重庆数据通信局提供网络带宽. 渝ICP备05002327号