¡¡Ô×÷Õߣºyifei(ÒÝ·É)
¸üÐÂÈÕÆÚ£º2005-09-02
ä¯ÀÀ´ÎÊý£º5824
¡¡¹Ø¼ü×Ö£ºBCB,Delphi,Windows Help,CHM,WM_HELPÏûÏ¢
±¾ÎÄÖ÷Òª½²½âÈçºÎÔÚC++Builder6.0¼°Ö®Ç°µÄ°æ±¾ÖÐʹÓÃMicrosoftµÄÐÂÐͰïÖú£º"CHM¸ñʽ°ïÖúÎļþ"£¬¶ÔÓÚÈçºÎÖÆ×÷CHM¸ñʽ°ïÖú£¬ÒÔ¼°ÈçºÎ»ñÈ¡°ïÖúÎļþÖÆ×÷¹¤¾ß£¬±¾ÎÄÖ»»áÒ»±Ê´ø¹ý£¬¸ø³ö¹Ù·½Á´½Ó»òÍÆ¼öÆäËüÕâ·½ÃæºÃµÄ½Ì³Ì£¬¾Í²»ÔÙ׸Êö¡£
CHM¸ñʽ°ïÖúÎļþÖÆ×÷¹¤¾ß
ÐèÒªMicrosoftµÄhtml help workshopÀ´ÖÆ×÷CHM¸ñʽµÄ°ïÖú£¬¿ÉÒÔµ½MicrosoftÕ¾µãÏÂÔØ£º
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp
ºÃµÄCHM°ïÖúÖÆ×÷½Ì³Ì
ѧϰÈçºÎÖÆ×÷CHM¸ñʽ°ïÖúÎĵµ£¬Çë²Î¿¼£º
Html Help Sample in Delphi[¿¨·ò].chm ×÷Õߣº¿¨·ò[cgcalf@263.net]
¸úÎÒѧHtmlHelp Workshop[·ë»Ý¾ü][ʯ¼ÒׯÌúµÀѧԺ].chm ×÷Õߣº·ë»Ý¾ü[ʯ¼ÒׯÌúµÀѧԺ]
Èç¹ûÏëÁ˽â¸ü¶à¹ØÓÚMicrosoft Html HelpµÄ֪ʶ£¬¿ÉÒÔ²éÔÄ£º
Microsoft Html Help Docs.zipMicrosoft¹Ù·½Îĵµ
¸üºÃµÄÊÇÖ±½ÓÔÚÏß²éÔÄMicrosoftµÄ¹Ù·½Îĵµ£¬µ½MSDNËÑË÷¹Ø¼ü×Ö£º"html help"£¬¿ÉÒÔËÑË÷µ½ºÜ¶à¹ØÓÚMicrosoft html helpµÄÄÚÈÝ£¬ÓÐ×îеÄhtml workshopÏÂÔØ¡¢ÔÚÏßAPIÊÖ²á¡¢ÖÆ×÷°ïÖúÎļþʾÀýµÈµÈ¡£
µ½ÕâÀÎÒ¼ÙÉè¶ÁÕßÒѾ°²×°ÁËMicrosoft html help workshop£¬ÇÒÒÑÕÆÎÕÈçºÎÖÆ×÷CHM¸ñʽ°ïÖúÎļþ¡£
±¾ÎÄÖгÌÐòÖе÷ÓõÄʾÀý°ïÖúÎļþ°üº¬ËĸöÖ÷Ì⣬ÕâËĸöÖ÷ÌâµÄÔ´´úÂëÈçÏ£º
1001.htm
<html>
<head>
<title>µÚÒ»¸öÖ÷Ìâ</title>
</head>
<body>
<p>µÚÒ»¸öÖ÷Ìâ</p>
</body>
</html>
1002.htm
<html>
<head>
<title>µÚ¶þ¸öÖ÷Ìâ</title>
</head>
<body>
<p>µÚ¶þ¸öÖ÷Ìâ</p>
</body>
</html>
1003.htm
<html>
<head>
<title>µÚÈý¸öÖ÷Ìâ</title>
</head>
<body>
<p>µÚÈý¸öÖ÷Ìâ</p>
</body>
</html>
1004.htm
<html>
<head>
<title>µÚËĸöÖ÷Ìâ</title>
</head>
<body>
<p>µÚËĸöÖ÷Ìâ</p>
</body>
</html>
Ìí¼ÓË÷Òý¡°µÚÒ»¸öÖ÷Ì⡱¡¢¡°µÚ¶þ¸öÖ÷Ì⡱¡¢¡°µÚÈý¸öÖ÷Ì⡱¡¢¡°µÚËĸöÖ÷Ì⡱£¬Ìí¼ÓËÑË÷¹Ø¼ü¶¨¡°µÚÒ»¸öÖ÷Ì⡱¡¢¡°µÚ¶þ¸öÖ÷Ì⡱¡¢¡°µÚÈý¸öÖ÷Ì⡱¡¢¡°µÚËĸöÖ÷Ì⡱£¬ÖÆ×÷ºÃCHM°ïÖúÎļþ¡£ÏÂÒ»²½µÄ¹¤×÷£¬ÊÇÌí¼Ó´Ë°ïÖúÎļþ¶Ô³ÌÐòUI½çÃæµÄÉÏÏÂÎÄÃô¸Ð¹ØÏµ¡£·½·¨ÈçÏ£º
ÓÃÎı¾±à¼Æ÷дһ¸ö.hÎļþ(Í·Îļþ£¬CHM±àÒëÆ÷ÐèÒªÓÃËü)£¬ÎļþÃûÈÎÒâ,ÄÚÈÝÈçÏ£º
#define µÚÒ»¸öÖ÷Ìâ 1001
#define µÚ¶þ¸öÖ÷Ìâ 1002
#define µÚÈý¸öÖ÷Ìâ 1003
#define µÚËĸöÖ÷Ìâ 1004
¼´°ÑÖ÷Ìâ¡°µÚÒ»¸öÖ÷Ì⡱¶¨ÒåΪһ¸öÊý×Ö1001...£¬ÏòCHM¹¤³ÌÎļþÖÐÌí¼ÓÕâ¸ö.hÎļþ£¬·½·¨ÈçÏ£º
(1).´ò¿ªHTML HELP WorkShop,´ò¿ª¸Õ²ÅÕâ¸öCHM¹¤³Ì£¬ÔÚProjectÒ³ÃæÉÏ×ó²à£¬µã»÷µÚËĸö°´Å¥¡°HtmlHelp API information¡±£¬ÔÚµ¯³öµÄ½çÃæÉϵã»÷¡°Alias¡±,Ìí¼ÓÖ÷Ö÷ÌâµÄ±ðÃû£¬Ìí¼Ó¡°µÚÒ»¸öÖ÷Ì⡱¶ÔÓ¦htmlÎļþ1001.htm...£»
(2).Ôڸղŵġ°HtmlHelp API Information¡±µ¯³ö½çÃæÉϵã»÷¡°Map¡±£¬µã»÷ÓÒ²àµÚÒ»¸ö°´Å¥¡°Head Files¡±£¬Ñ¡Ôñ¡°include¡±¸Õ²ÅÖÆ×÷µÄÄǸö.hÎļþ
(3).ÖØÐ±àÒëCHM¹¤³Ì£¬Éú³ÉµÄÎļþ¾ÍÊÇÂú×ãÒªÇóµÄÓÐÉÏÏÂÎÄÃô¸Ð¹ØÏµµÄCHM°ïÖúÎļþÁË¡£
²âÊÔÒ»ÏÂÄúµÄCHM¸ñʽ°ïÖúÎļþÊÇ·ñÕýÈ·£¬µã»÷HTML HELP WorkShopµÄ¡°Text¡±->¡°HTMLHelp API¡±£¬ÔÚµ¯³öµÄ½çÃæÉÏ£¬ä¯ÀÀ¸Õ²ÅÉú³ÉµÄCHMÎļþ£¬¡°Command¡±Ñ¡Ôñ¡°HH_HELP_CONTEXT¡±£¬µÚ¶þ¸ö²ÎÊý¡°Window¡±Ä¬ÈÏ£¬µÚÈý¸ö²ÎÊý¡°Map Numbers¡±£¬ÊäÈëÄǸö.hÎļþÖж¨ÒåµÄÊý×Ö£¬µã»÷È·¶¨
£¬¾Í»á´ò¿ªÕâ¸öCHMÎļþ²¢¼¤»îÏà¹ØµÄÖ÷ÌâÁË¡£
µ½ÕâΪֹ£¬ÒѾ³É¹¦ÁËÒ»°ë£¬ÎÒÃÇÒѾÓÃHTML HELP WorkShopÖÆ×÷³öÁËÉÏÏÂÎÄÃô¸ÐµÄCHM¸ñʽ°ïÖú£¬ÏÂÒ»²½µÄÖØµãÊÇÔÚC++BuilderºÍDelphiÖÐÀ´µ÷ÓÃÕâ¸öÉÏÏÂÎÄÃô¸ÐµÄCHM°ïÖúÎļþ¡£
ÔçÆÚµÄWindowsÖУ¬Microsoft ΪÆäÉè¼ÆÁËÒ»Ì×API£¬ÓÃÓÚWindows Helpϵͳ£¬Ò»Ö±µ½Windows XP SP2ÈÔÈ»±£ÁôÕâÌ×API£¬ËüµÄÎÊÌâÊÇ£¬Ö»ÄܱíÏÖÎÄ×ֵȼòµ¥ÄÚÈÝ£¬²»ÄÜÏóHTML¶øÄÇÑù±íÏַḻµÄÄÚÈÝ¡£Òò´Ë£¬MicrosoftÔÚ1998ÄêÍÆ³öÁËÈ«ÐÂÒ»´úµÄ°ïÖúϵͳ:Compiled Help Manual,½«HTMLÎļþ
±àÒëºÍѹËõ£¬ÌṩÁËWEBÒ³Ò»ÑùµÄ·á¸»µÄ±íÏÖÁ¦£¬Í£Ö¹Á˶ԾɵÄWindows HelpµÄ¿ª·¢¡£
Borland C++ Builder 6.0/Delphi7.0¼°Ö®¼äµÄ°æ±¾µÄÓû§ÊÖ²áµÈ×ÊÔ´¶¼ÊǾɵÄWindows HelpµÄ£¬¶øVCLÒ²Ö»ÌṩÁ˶ԾɵÄWindows HelpµÄÖ§³Ö£¬ÔÚµ±½ñWEBÁ÷ÐеĽñÌ죬Èç¹ûÄãµÄÈí¼þ»¹ÓþɵÄWindows Help£¬Î´ÃâÓÐЩÀÏÍÁ°É£¡
ÎÒËÑË÷ÁË´óÁ¿µÄÍøÂç×ÊÔ´²¢ÔÚ¼¾ÀÏ´óµÄ°ïÖúÏ£¬ÍêÃÀ½â¾öÁËÔÚC++Builder6.0/Delphi7.0¼°ÒÔǰ°æ±¾ÖÐʹÓÃÉÏÏÂÎÄÃô¸ÐµÄCHM¸ñʽ°ïÖúµÄ·½·¨¡£
VCLĬÈÏÖ§³Ö¾ÉµÄÉÏÏÂÎÄÃô¸ÐµÄWindows Help£¬Í¨¹ýÉèÖÿؼþµÄHelpContextÖµÀ´Ö¸¶¨Óë¿Ø¼þÏà¹ØµÄ°ïÖúÖ÷Ì⣬Èç¹ûApplicationÊÕµ½WM_HELPÏûÏ¢£¬¾Í»á½âÎöWM_HELPÏûÏ¢ÖеÄHelpContext£¬µ÷ÓÃWindows Help£¬ÏÔʾÏà¹ØµÄÖ÷Ì⣬Òò´Ë£¬µ÷ÓÃCHM¸ñʽ°ïÖúʱ£¬ÎÒÃÇÒ²ÐèÒªÉèÖÃÏàÓ¦¿Ø¼þµÄHelpCo
ntext(Öµ¾ÍÊÇÉÏÃæ¶¨ÒåµÄ.hÎļþÖеÄÓëÖ÷ÌâÏà¹ØµÄÊýÖµ)£¬ÎÒÃÇÐèÒª½Ø»ñ·¢µ½³ÌÐòÖеÄWM_HELPÏûÏ¢£¬·ÖÎöHelpContext£¬²¢µ÷ÓÃÎÒÃÇ×Ô¼ºÖÆ×÷µÄCHM°ïÖú£¬Ò»ÇоÍÍê³ÉÁË¡£µ«ÊÇÊÂʵȴûÓÐÕâô¼òµ¥¡£
(1).HTML HelpµÄAPI¶¼·â×°ÔÚhhctrl.ocx¿âÖÐ(Windows 98¼°ÒÔºóµÄWindowsϵͳ°²×°ÕâÒ»¸ö¿â)£¬Òò´Ë£¬ÎÒÃÇʹÓÃBorland¿ª·¢¹¤¾ßÖеĵ¼È빤¾ßimplib.exe¼´¿ÉÒÔµ¼ÈëÕâ¸ö¿âµÄ¾²Ì¬°æ±¾£ºimplib hhctrl.lib hhctrl.dll£¬°ÑÕâ¸ö¾²Ì¬¿âÌí¼Óµ½ÎÒÃǵŤ³ÌÖУ¬ÔÚÎÒÃǵijÌÐòÖÐÌí¼Óhtmlhelp.
hÍ·Îļþ(Borland¿ª·¢¹¤¾ßÒѰüº¬Õâ¸öÍ·Îļþ)£¬¼´¿ÉÒÔµ÷ÓÃHELP HelpµÄAPIÁË£»
(2).VCL¹¹¼ÜµÄÓ¦ÓóÌÐòÔÚÒÔÏÂÈýÖÖ·½Ê½ÖÐÊÕµ½WM_HELPÏûÏ¢£ºÔÚÖ÷²Ëµ¥¼°Æä²Ëµ¥ÏîÉϰ´F1¡¢ÔÚ´°ÌåÔªËØÉϰ´F1¡¢ÔÚµ¯³öµÄPopupMenuÉϰ´F1£¬µÚÒ»Öֺ͵ڶþÖÖÇé¿öϵÄÏûÏ¢ºÜÈÝÒ×½ØÈ¡£¬µ«ÊǵÚÈýÖÖÇé¿öÈ´±È½ÏÌØÊ⣬VCL¶ÔPopupMenuÏûÏ¢µÄ´¦Àí±È½ÏÌØÊ⣬Ëü·â×°ÁËÒ»¸ö²»¿É¼ûµÄ´°ÌåPopupLis
t->WindowÀ´Í³Ò»¹ÜÀíµ¯³ö²Ëµ¥µÄÏûÏ¢£¬Ê®·Ö¸Ð¼¤¼¾ÀÏ´ó£¬ÎҲŽØÈ¡Á˵ÚÈýÖÖ·½Ê½µÄWM_HELPÏûÏ¢¡£
ʵÏÖµÄϸ½ÚÈçÏ£º
ÔÚÉÏÊöµÄµÚÒ»Öֺ͵ڶþÖÖ·½Ê½µÄWM_HELPÏûÏ¢À´Ô´£¬Ö»Òª×Ô¶¨ÒåÒ»¸öWM_HELPÏûÏ¢´¦Àí¾ä±ú¼´¿É£¬È»ºó¸ù¾Ý²Ëµ¥ÏûÏ¢»¹ÊÇÆäËü¿Ø¼þÏûÏ¢À´·Ö¿ª´¦Àí£»
¶ÔÓÚÉÏÊöµÚÈýÖÖWM_HELPÏûÏ¢À´Ô´£¬ÐèÒªÔÚ³ÌÐòÔËÐÐÊ±ÖØÉèPopupList->WindowµÄ´°Ì庯Êý£¬²¢ÔÚ³ÌÐòÍ˳ö»¹Ô£¬È»ºóÔÚ×Ô¼º¶¨ÒåµÄÕâ¸ö´°Ì庯ÊýÖд¦ÀíWM_HELPÏûÏ¢¡£
˵ÔÙ¶àҲûÓдúÂëÓÐ˵·þÁ¦£¬ÎÒʵÏֵĴúÂëÈçÏ£º
¡¡
MainFormUnit.h
//---------------------------------------------------------------------------
// ×÷Õߣºyifei
// ÈÕÆÚ£º2005-08-31
//---------------------------------------------------------------------------
#ifndef MainFormUnitH
#define MainFormUnitH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Menus.hpp>
#include <ActnList.hpp>
#include <DBGrids.hpp>
#include <ExtCtrls.hpp>
#include <Grids.hpp>
#include <AppEvnts.hpp>
#include <ComCtrls.hpp>
#include <ImgList.hpp>
#include <ToolWin.hpp>
//---------------------------------------------------------------------------
class TMainForm : public TForm
{
__published: // IDE-managed Components
TMainMenu *MMenu;
TMenuItem *F1;
TMenuItem *cdefg1;
TPopupMenu *PPMenu;
TActionList *AList;
TAction *ActionNew;
TAction *ActionOpen;
TAction *ActionClose;
TAction *ActionHelp;
TMenuItem *O1;
TMenuItem *X1;
TMenuItem *H1;
TMenuItem *C1;
TButton *Button1;
TEdit *Edit1;
TButton *Button2;
TComboBox *ComboBox1;
// ±¾ÎÄת×Ô C++Builder Ñо¿ - http://www.ccrun.com/article.asp?i=624&d=a15f8r
TMenuItem *N1;
TMenuItem *O2;
TMenuItem *X2;
TMenuItem *N2;
TMenuItem *C2;
TLabel *Label1;
TLabel *Label2;
TCheckBox *CheckBox1;
TMenuItem *N3;
TImageList *ImageList;
TToolBar *ToolBar1;
TToolButton *ToolButton1;
TToolButton *ToolButton2;
TToolButton *ToolButton3;
TToolButton *ToolButton4;
TToolButton *ToolButton5;
TToolButton *ToolButton6;
void __fastcall ActionNewExecute(TObject *Sender);
void __fastcall ActionOpenExecute(TObject *Sender);
void __fastcall ActionCloseExecute(TObject *Sender);
void __fastcall ActionHelpExecute(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TMainForm(TComponent* Owner);
protected:
// È¡Ïû±àÒëÆ÷ÄÚÁªÓÅ»¯£¬±ÜÃâ±àÒëÆ÷¾¯¸æ
#pragma option push -vi-
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_HELP, Messages::TMessage, MyHelp)
END_MESSAGE_MAP(TForm)
#pragma option pop
// ×Ô¶¨ÒåµÄWM_HELPÏûÏ¢´¦Àí¾ä±ú
void __fastcall MyHelp(Messages::TMessage &Message);
};
//---------------------------------------------------------------------------
extern PACKAGE TMainForm *MainForm;
//---------------------------------------------------------------------------
#endif
MainFormUnit.cpp
//---------------------------------------------------------------------------
// ×÷Õߣºyifei
//¡¡ÈÕÆÚ£º2005-08-31
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "htmlhelp.h"
#include "MainFormUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
static FARPROC OldMenuProc = NULL; // ±£´æ¾ÉµÄµ¯³ö²Ëµ¥´¦Àíº¯Êý
// NewMenuProc ΪеÄÏûÏ¢´¦Àíº¯Êý--еÄPopupList->WindowµÄ´°Ì庯Êý
static long CALLBACK NewMenuProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::MyHelp(Messages::TMessage &Message)
{
HELPINFO *HI = (HELPINFO*)Message.LParam;
TWinControl *WC;
TMenuItem *MI;
TMenu *Menu;
// Ö÷²Ëµ¥ÉÏ´«À´µÄWM_HELPÏûÏ¢
if(HI->iContextType == HELPINFO_MENUITEM)
{
for(int i=0; i<this->ComponentCount; i++)
{
Menu = dynamic_cast<TMenu *>(this->Components[i]);
if(Menu != NULL)
{
MI = Menu->FindItem(HI->iCtrlId, fkCommand);
if(MI != NULL)
{
break;
}
}
}
if(MI != NULL && MI->HelpContext != 0)
{
HtmlHelp(this->Handle, Application->HelpFile.c_str(), HH_HELP_CONTEXT, MI->HelpContext);
}
else
{
HtmlHelp(this->Handle, Application->HelpFile.c_str(), HH_DISPLAY_TOPIC, 0);
}
}
// »î¶¯¿Ø¼þÉÏ´«À´µÄWM_HELPÏûÏ¢
else
{
WC = FindControl(HI->hItemHandle);
if(WC != NULL && WC->HelpContext != 0)
{
HtmlHelp(this->Handle, Application->HelpFile.c_str(), HH_HELP_CONTEXT, WC->HelpContext);
}
else
{
HtmlHelp(this->Handle, Application->HelpFile.c_str(), HH_DISPLAY_TOPIC, 0);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ActionCloseExecute(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ActionHelpExecute(TObject *Sender)
{
HtmlHelp(this->Handle, Application->HelpFile.c_str(), HH_DISPLAY_TOPIC, 0);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action)
{
// »¹Ô PopupList µÄÏûÏ¢´¦Àíº¯Êý£¬±ØÐëÒª»¹Ô£¬·ñÔò»áÓÐÎÊÌâ
::SetWindowLong(PopupList->Window, GWL_WNDPROC, (long)OldMenuProc);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
// ¸ü¸Ä PopupList µÄÏûÏ¢´¦Àíº¯Êý²¢±£´æ¾ÉµÄPopupListµÄÏûÏ¢´¦Àíº¯Êý
OldMenuProc = (FARPROC)::SetWindowLong(PopupList->Window, GWL_WNDPROC, (long)NewMenuProc);
}
//----------------------------------------------------------------------------
// ±§Ç¸£¬Õâ¸öÌáʾÓÖÀ´ÁË£¬ÎªÁË·ÀÖ¹²»¸ºÔðÈεÄ×ªÔØÕߣ¬Ö»ºÃÔÚ´ËÁôЩÐÅÏ¢¡£
// ×÷Õߣºyifei(ÒÝ·É) yifei1900@tom.com
// ±¾ÎÄת×Ô C++Builder Ñо¿ - http://www.ccrun.com/article/go.asp?i=624&d=a15f8r
//----------------------------------------------------------------------------
static long CALLBACK NewMenuProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
int n;
int ContextID;
TMenu* PopMenu;
TMenuItem* MenuItem;
// Èç¹ûÏûÏ¢²»ÊÇWM_HELP£¬Ö±½ÓʹÓÃCallWindowProc¡¡Õâ¸öAPI°ÑÏûÏ¢´«µÝµ½¾ÉµÄÏûÏ¢´¦Àíº¯ÊýÖд¦Àí
if(uMsg != WM_HELP)
return ::CallWindowProc(OldMenuProc, hwnd, uMsg, wParam, lParam);
HELPINFO* phi = (HELPINFO*)lParam;
for(n=0; n<PopupList->Count; n++)
{
PopMenu = (TMenu *)PopupList->Items[n];
if (phi->hItemHandle == PopMenu->Handle)
MenuItem = PopMenu->Items; // ÎÞSubMenuÇé¿ö
else
MenuItem = ((TPopupMenu*)PopMenu)->FindItem(
(int)phi->hItemHandle, fkHandle); // ÓÐSubMenuµÄÇé¿ö
if(MenuItem != NULL)
{
ContextID = PopMenu->GetHelpContext(phi->iCtrlId, true); // iCtrlId±£´æTMenuItemµÄCommand
if(ContextID == 0)
ContextID = PopMenu->GetHelpContext((int)phi->hItemHandle, false);
if(Screen->ActiveForm==NULL)
break;
if(ContextID == 0)
ContextID = Screen->ActiveForm->HelpContext;
// Õâ¶ùµ¯³ö ContextID µÄ°ïÖúÐÅÏ¢
if(ContextID != 0)
{
HtmlHelp(hwnd, Application->HelpFile.c_str(), HH_HELP_CONTEXT, ContextID);
}
else
{
HtmlHelp(hwnd, Application->HelpFile.c_str(), HH_DISPLAY_TOPIC, 0);
}
break;
}
}
return TRUE;
}
½â¾öÎÊÌâµÄ¹ý³ÌÏà¹ØµÄÌù×Ó£º
(1) http://community.csdn.net/Expert/TopicView.asp?id=4201850
(2) http://community.csdn.net/Expert/TopicView.asp?id=4206790
±¾ÎÄÖÐÌáµ½µÄchm¸ñʽºÍzip¸ñʽµÄ×ÊÔ´£¬¿ÉÒÔÏòÎÒÀ´ÐÅË÷È¡:yifei1900@tom.com£¬Ô´ÎļþÒ²¿ÉÒÔÀ´ÐÅË÷È¡¡£
Èç¹û×ªÔØ±¾ÎÄ£¬Çë±£ÁôÔ×÷Õß¼°À´Ô´£¬Ð»Ð»ºÏ×÷!
|