以文本方式查看主题

-  曙海教育集团论坛  (http://sun4.cn/bbs/index.asp)
--  C++语言开发  (http://sun4.cn/bbs/list.asp?boardid=63)
----  CBuilder中帮助文件的连接及显示讨论  (http://sun4.cn/bbs/dispbbs.asp?boardid=63&id=2424)

--  作者:wangxinxin
--  发布时间:2010-12-10 14:14:54
--  CBuilder中帮助文件的连接及显示讨论
前几天需制作一帮助文件,通过网查找及试验发现以下方法,希对有同样需要的

  人们有一些帮助。

  目前的帮助文件主要有三类:

  *.hlp

  *.chm

  *.html

  制作方法各有不同,本文主要提及在CBuilder中帮助按键的检测及应用问题。

  方法1:

  在Form 属性中设

  __property AnsiString HelpFile = {read=FHelpFile, write=FHelpFile};

  及

  HelpContext

  方法2:

  在Form 事件中设

  __property Classes::THelpEvent OnHelp = {read=FOnHelp, write=FOnHelp};

  方法3:

  在增加一件菜单项,对菜单项设置热键F1

  后通过事件进行程序控制

  以上三个方法均是对单个窗口进行帮助控制。

  方法4:

  通过设置

  Application->OnMessage = ....;

  该方法可以对有所有的窗口统一控制及对一些窗口单独控制。

  方法5:

  其它,如在各子窗口,控件中对帮助事件进行捕捉,并处理。

  关键代码段:

  void TForm1::F1HelpUse(void)//帮助显示

  {

  HINSTANCE hInst= ShellExecute(

  0,

  "open",

  "F:\\\\HelpUse\\\\NetHelp\\\\main0.htm",//本行可根据具体更改

  "",

  "F:\\\\HelpUse\\\\NetHelp",//本行可根据具体更改

  SW_SHOWNORMAL

  );

  //Returns a value greater than 32 if successful

  }

  //F1按键获取

  void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)

  {

  if (Msg.message ==WM_KEYDOWN)

  {

  if(Msg.wParam==VK_F1)