BCB中调用chm文件?http://dev.csdn.net/Develop/article/11/11345.shtm?

jxf_yx 2004-08-03 11:28:43
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Application->HelpFile = "Main.chm";
Application->OnHelp = AppHelp;
}
//--------------------------------------------------------------------------
bool __fastcall TForm1::AppHelp(Word Command, int Data, bool &CallHelp)
{
switch(Command)
{
case HELP_CONTEXT:

HtmlHelp(GetDesktopWindow(), Application->HelpFile.c_str( ), HH_HELP_CONTEXT, Data);
CallHelp = false;

break;

default:

CallHelp = true;
}

return true;
}

==
AppHelp方法根本不执行.当用F1键的时候还是提示文件错误,不是windows文件.
Application->OnHelp = AppHelp;没有起作用???
...全文
236 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxf_yx 2004-08-16
  • 打赏
  • 举报
回复
对的.
giboer 2004-08-10
  • 打赏
  • 举报
回复
是想实现 BCB的上下文帮助功能么?
constantine 2004-08-06
  • 打赏
  • 举报
回复
起不到帮助的作用?什么意思?
要象bcb,按一下f1,就出来吗?//可以用热键,快捷键啊
其他的不知道有什么区别,说来听听
jxf_yx 2004-08-05
  • 打赏
  • 举报
回复
楼上,这样的调用,不好.都起不到帮助的作用.
tgzhang 2004-08-04
  • 打赏
  • 举报
回复
不是的,你的程序应该没有什么问题。
但是你缺这一步:

微软提供的HTML HELP Workshop中包含了htmlhelp.h和htmlhelp.lib,用于在程序中使用Compressed Html Help。但其中htmlhelp.lib不能直接在BCB中使用。在BCB中的使用方法如下:

implib hhctrl.lib hhctrl.ocx:创建HtmlHelp的库文件。
在程序中include <htmlhelp.h>
在工程中加入第一步创建的hhctrl.lib,
编译即可。

在程序中的实例:

HtmlHelp(
GetDesktopWindow(),
AnsiString(Application->HelpFile + "::/index.htm").c_str(),
HH_DISPLAY_TOPIC,
NULL);


jxf_yx 2004-08-04
  • 打赏
  • 举报
回复
constantine 2004-08-04
  • 打赏
  • 举报
回复
BCB中调用chm文件?

AnsiString File;
File=ExtractFilePath(ParamStr(0))+"help.chm";
ShellExecute(Handle,"open","hh.exe",File.c_str(),"",SW_SHOWNORMAL);

这样就可以调用了!
还是说一定要搞定那个文章啊!!!
jxf_yx 2004-08-04
  • 打赏
  • 举报
回复
to: tgzhang(张三)
你的我早实现了.现在的问题是用F1的问题.按F1更本不执行Application->OnHelp = AppHelp;
AppHelp方法
kmfangxun 2004-08-03
  • 打赏
  • 举报
回复

Application->HelpFile = "Main.chm";


bcb不支持*.chm 文件,需要单独调用.
jxf_yx 2004-08-03
  • 打赏
  • 举报
回复
晕,楼上的一样.也不执行上面的代码.大家看看啊.为什么不重载方法啊.
kmfangxun 2004-08-03
  • 打赏
  • 举报
回复
在窗体上加一个 TApplicationEvents 组件,直接用它的OnHelp事件.


bool __fastcall TForm1::ApplicationEvents1Help(WORD Command, int Data,
bool &CallHelp)
{

  Application->MessageBox("看看执行了没有?","",MB_OK);  

switch(Command)
{
case HELP_CONTEXT:

HtmlHelp(GetDesktopWindow(), Application->HelpFile.c_str( ), HH_HELP_CONTEXT, Data);
CallHelp = false;

break;

default:

CallHelp = true;
}

return true;



}
//---------------------------------------------------------------------------
jxf_yx 2004-08-03
  • 打赏
  • 举报
回复
还是不执行啊.怎么回事啊?
kmfangxun 2004-08-03
  • 打赏
  • 举报
回复

这样呢?
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnHelp = AppHelp;
}


另外:
bool __fastcall TForm1::AppHelp(Word Command, int Data, bool &CallHelp)
{
 
  Application->MessageBox("看看执行了没有?","",MB_OK);  

switch(Command)
{
case HELP_CONTEXT:

HtmlHelp(GetDesktopWindow(), Application->HelpFile.c_str( ), HH_HELP_CONTEXT, Data);
CallHelp = false;

break;

default:

CallHelp = true;
}

return true;
}
jxf_yx 2004-08-03
  • 打赏
  • 举报
回复
第一二没作对是不会出现那个错误的.因为方法根本没重载.我想问下.这样方法重载有问题没有?
JetKingLau 2004-08-03
  • 打赏
  • 举报
回复
可能是你的第 1、第 2 步没做对。
kmfangxun 2004-08-03
  • 打赏
  • 举报
回复
喔,sorry,问一下作者吧。
jxf_yx 2004-08-03
  • 打赏
  • 举报
回复
按照这篇文章是可以支持的.
http://dev.csdn.net/Develop/article/11/11345.shtm
只不过程序重载Application->OnHelp = AppHelp;没有起作用???

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧