作者:likecpp
前幾天需制作一幫助文件,通過網查找及試驗發(fā)現以下方法,希對有同樣需要的 人們有一些幫助。
目前的幫助文件主要有三類: *.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
|