按F1调用关联帮助-CHM 急!!!!(50分)

  • 主题发起人 主题发起人 macrolen
  • 开始时间 开始时间
M

macrolen

Unregistered / Unconfirmed
GUEST, unregistred user!
我在DELPHI中调用CHM,希望在不同的MDI窗口上按下F1则显示相关主题,功能已实现。利用了HHCTRL.OCX控件中的HtmlHelpA函数实现<br><br>但我不想在每个窗体中都响应F1,这样太麻烦,我想在消息还未分发给<br>窗口之前把它截获,这样只需写一次就能对所有窗口有效。<br><br>我想这样做:<br>设置不同MDI窗体的HelpContext属性。<br>例如:Form1: 10100 <br>&nbsp; &nbsp; &nbsp; Form2: 10101<br><br><br>相应F1按键<br><br><br>...<br><br>const<br>&nbsp; CompiledHelpFile = 'help.chm';<br><br>...<br><br>//公用函数ShowHelp显示不同帮助画面。<br>procedure TMainForm.ShowHelp(sTopic:string);<br>var<br>URL:string;<br>begin<br>&nbsp; URL := CompiledHelpFile + '::/' + 'test.htm' + '&gt;';<br>&nbsp; HtmlHelp(Application.Handle,PChar(URL), HH_DISPLAY_TOPIC, 0)<br>end;<br><br>请各位告知该如何做不用在每个MDI窗口中都响应F1按键来得到不同帮助画面。麻烦请写出代码,谢谢!<br><br>我的实例代码已上传到www.playicq.com<br>http://new.playicq.com/dispdocnew.php?id=5661
 
没有人帮忙吗?再加100分吧,真的很着急!<br>改好事例程序可发给我:<br>macrolen@163.com
 
可以考虑下自己将F1用RegisterHotKey注册为热键,拦截WM_HOTKEY消息,自己根据当前哪个CHILD FORM处于活动状态判断处理。或者状态可以通过OnActivate事件中记录不同标志实现。
 
在MDI下只有子窗口才能响应F1键!请看看我的事例代码吧!帮帮我改一下!谢谢了!
 
有一套ehs控件,只需要你设好每个窗体的helpcontext就行了,<br>当然你的help.chm中要映射了相应的主题。
 
我也是用的ehs控件很好的
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
642
import
I
I
回复
0
查看
767
import
I
后退
顶部