如何在vfp9.0中调用chm帮助文件的第8页?
下面是6.0以前的例子,在9.0中如何使用,大家给个例子,谢谢!!!
如果在 VFP 6.0 中用 set help to helpfile.chm 命令并用按下 F1 调用帮助文件不会有问题。
但是在 VFP 5.0 或 VFP 3.0 中,使用 set help to helpfile.chm 命令后,若按 F1 想调用帮助文件时会发生系统错误。
因此,可以象以下示例一样来调用一个指定位置处的指定的 .chm 帮助文件中的指定的主题文件
1. 如果你的系统中没有注册 Hhctrl.ocx 按以下方法注册它
在 Visual FoxPro 3.0 和 3.0b, Regsvr32.exe 位于 \Vfp\Samples\Ole 目录, 在 Visual FoxPro 5.0 中, Regsvr32.exe 位于 \Vfp 目录.在 DOS 提示符下,用以下方法注册:
Regsvr32 Hhctrl.ocx
2. 修改 vfphtml.prg,修改变量 lcSampleHelp,lcHhctrl 和 lcTopic 的值. 这些变量包含 .chm 和 Hhctrl.ocx 的位置和要显示的主题的信息.
3. 进入 Visual FoxPro 并运行该程序.
4. 你指定的位置的 .chm 文件中的指定主题将会显示在屏幕上.
请注意示例中 hhctrl.ocx 所在的位置,在你的应用中,应为你的 hhctrl.ocx 指定适当的位置
以下示例假在你的电脑的设你有一个 C:\vfphtml\ 目录,且其中有一个 vfphtml.CHM 帮助文件,该帮助文件中包含有一个 page2.htm 文件。
以下是示例程序
* 在 Visual Foxpro 中用 HTML Help API 显示一个 HTML 帮助文件.
#DEFINE HH_DISPLAY_TOPIC 0
* 修改该行来反映你的 Chm 文件位置
lcSampleHelp = "C:\vfphtml\vfphtml.CHM"
* 修改该行来反映你的 Ocx 文件位置
lcHhctrl="c:\vfphtml\hhctrl.ocx"
* 修改该行来反映你的帮助文件中的 .htm 文件
lcTopic = "C:\vfphtml\vfphtml.CHM::/page2.htm"
* 该函数 取决于 生成 html 帮助文件的计算机的 hhctrl.ocx 版本
DECLARE INTEGER HtmlHelp IN (lcHhctrl) INTEGER hwndCaller, ;
STRING pszFile, INTEGER uCommand, INTEGER dwData
* 确定调用程序的 hwnd
* mainhwnd() 将告诉我们 VFP 桌面的名柄
SET LIBRARY TO SYS(2004) + "foxtools.fll"
m.hwndCaller = mainhwnd()
SET LIBRARY TO
NULLVALUE = 0
* 返回值是 html 帮助窗口的窗口句柄
* 在默认的帮助窗口中显示指定位置(C:\vfphtml\)中的指定帮助文件(vfphtml.CHM)中的指定主题(page2.htm)
hwndHelp = HtmlHelp(m.hwndCaller,;
"C:\vfphtml\vfphtml.CHM::/page2.htm",HH_DISPLAY_TOPIC,NULLVALUE)
------解决方案--------------------------------------------------------
VFP中应用帮助文件,如何在任何表单中实时启动帮助文件中的某一条?其ID如何得到?
在VFP中,我已完成了HELP的文件编译与运用,但不能有任一表单中调用帮助文件中的某一帮助条款。需实现的功能:
如一表单A中有一command按钮,当光标走到command按钮时会自动显示“这是什么?”当点击“这是什么?”时,则启动HELP的相应帮助条款!
各位高手怎么实现这一功能呢?
*----------------------------
如果你采用id方式,你需要:
1、在help文件中知道相应帮助条目的id
2、在系统开始时,执行
set help on
set help to 文件名
3、当点击“这时什么”时,执行
help id 条目的id
如果不采用id方式,可以:
1、在系统开始时,执行
set help on
set help to 文件名
2、当点击“这时什么”时,执行
help 你希望显示的topic
-------------------------------------------------
方法步骤:
1\将表单属性whatthishelp及whatthisbutton设置为.t. whatthishelpid设置为-1
minbutton及maxbutton设置为.f.
2\添加表单的属性helpprev
3\表单的init代码:thisform.helpprev=set("help",1) && 保存原系统的帮助文件
4\表单的click及activate代码:
set help to addbs(justpath(sys(1271,thisform)))+"帮助文件名称.hlp"
5\打开需要设置的控件的属性,将whatthishelpid=11
&& 11与已经制作好的"帮助文件名称.rtf"的脚注标识的对应数值相同,如:aaa=11
&& 先在word软件中制作"帮助文件名称.rtf",然后制作"帮助文件名称.hlp"(可用microsoft help workshop 软件).
全部完成后,在使用时单击表单右上角的?按钮,然后鼠标单击已经设置的控件,会显示"帮助文件名称.rtf"中相关的信息.
(制作"帮助文件名称.rtf"及用microsoft help workshop 软件制作"帮助文件名称.hlp"的方法略)
---------------------------------------------------
是因为缺少相关的资源文件 foxhhelp9.exe、foxhhelpps9.dll。foxhhelp9.exe运用之后就能调用了。
还可以通过api方式调用的。
* help ID thisForm.helpContextID
* 可将 help ID 替换为 do helpId with ....
do helpid with 1001 && 如调用编号为“1001”
* 功能描述:API方式调用CHM帮助文档(不用foxtools.fll获取窗口句柄)
* 参数说明: tnTopic = 调用主题编号
function HelpId
lparameters tnTopic && 主题编号
declare integer FindWindow in WIN32API string,string
declare integer HtmlHelp in hhctrl.ocx integer hwndCaller,;
string pszFile,integer uCommand,integer dwData
local lcHelp,lhwndCaller
lcHelp = 'rsgzhelp.chm' && chm帮助文档的位置