首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
亲,您未登录哦! 登录 | 注册

CBuilder中帮助文件的连接及显示讨论

打印文章

分享到:
作者:likecpp  

前几天需制作一帮助文件,通过网查找及试验发现以下方法,希对有同样需要的
人们有一些帮助。

目前的帮助文件主要有三类:
*.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)
    {
      F1HelpUse();
      Handled = true;
    }

  }
  /* for all other messages, Handled remains False so that other message handlers

can respond */
}

//设置事件处理
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Application->OnHelp = FormHelp;

  Application->OnMessage = AppMessage;

}

2003.08.12

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

编程爱好者论坛

本栏最新文章