//在MainFm.h里添加自定义消息响应函数----------------------------
void __fastcall AppMessage(tagMSG &MSG,bool &Handled);
//在MainFm.cpp里添加-------------------------
void __fastcall TMainForm::AppMessage(tagMSG &MSG,bool &Handled)
{
if (MSG.message == WM_KEYDOWN)
{
if (MSG.wParam == VK_F1)
{
Application->MessageBoxA(L"F1", L"F1", MB_OK);
}
}
}
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
Application->OnMessage = AppMessage;
}
另外还有一种办法,哪个窗体或者控件需要按F1有反应,就在属性里改helpcontextid
用以下命令生成htmlhelp.lib文件,hhctrl.ocx在C:\WINNT\system32中
implib htmlhelp.lib hhctrl.ocx
直接用菜单项目的project->add to project把htmlhelp.lib 加入项目
在Cpp文件中要有#include "HtmlHelp.h"这一行
__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;
}
//--------------------------------------------------------------------------
void __fastcall TForm1::FormClose(Tobject *Sender, TCloseAction &Action)
{
HtmlHelp(NULL, NULL, HH_CLOSE_ALL, 0);
}
//---------------------------------------------------------------------------