      

           Windows   . 
            
  . ,     Windows 95 
    .      
  ,      
   ,    .   
        . 
        . 
        ,     
 15       .   
  ,  ,        
  Windows.     ,    
     . 

    431 


       

       Windows (Windows Help)     
.    ,  ,     
  .      , 
   Help.      . 16.1.   
      ,   
     .   
         
    . 

    . 16.1.    

         .    
     , 
      (. 16.2).   
 Windows    .     , 
     . 

    432 MFC:   


    . 16.2.    


      

          Windows,   
      .  
,        : 
    1.       . 
    2.     "?",     . 
    3.    [F1]. 
    4.   Help. 
             
   .    [F1]   
  .        
 .  Help       . 
     ,    ,  , 
 .  ,  ,   ,   
   . 
     MFC        CWinApp.  
  ,      

    16.   433 

        WinHelpQ  CWinApp,  (  
)  API- WinHelpQ.    , 
     .      
,     . 
    :   ,    API-  
WinHelp()          : 

    ::WinHelp(). 


      

        Windows   .    
  ,     .     
 .        HLP. 
         RTF (Rich 
Text Format),       ,  
   .     RTF  
     . ,  Microsoft 
Visual C++   HCW.    
 HLP-.  ,      RTF- 
 ,  HLP-  . 
      RTF    .  4)  
    .        
   ,     RTF.  
RTF-    "\". ,  \   
  (bold).       RTF- (  
   ).        
  ,    .    
    ,  ,    RTF. 
     RTF-       . 
      ,    . 
    HPJ. 

       

      ,        RTF. 
 ,        
 .      . -, 
        . 
-,    ,    
  RTF.  ,       
    RTF-.     
        
.          
.       ,     . 

    434 MFC:   


        

             . 
-,         . ..  
    "{"    "}".    
      \rtf.  , 
      RTF,    .  
    .     
 \ansi,    ,   ANSI. 
    .    
 \fonttbl.  ,   RTF-    : 

    {\rtf4\ansi\fonttbl ... 
       
    } 

     RTF-     ,  
   ,    .  
     C++,      . 

     RTF- 

          ,    
     RTF-.  
RTF-,    ,   . 16.1. 

     16.1.  RTF-,     

    RTF-  

    \ansi                ,   ANSI 
    \b                 ,    
    \                ,    
    \fn                ,    
    \fsn                 ,    
    \fonttbl               
    \footnote              ,    
    \i                   
    \                  
    \page                 
    \                  
    \rtf>i                RTF-.  Windows 95  
   4.     Windows   1 
    \tab                      
    \uldb                  (" ") 
   
    \v                    (   
 \uldb) 


    16.   435 


    \ansi 
        ,   ANSI.  
 RTF      ,   \ 
( Macintosh)  \ ( ,  OEM-).  
   Windows  ANSI-. 
    \ 
        ,   .  
\   .   \    ,  
       ,    
 \  . ,   
    {\   ,}    
     ,    ,    . 
    V" 
           ,  
     ,    .    
     \fonttbl. 
    \fsn 
           .    
     (point). ,  \fs24 
   12. 
    \fonttbl 
        ,       
\fonttbl.    : 

    {\fonttbl 
    (\\   ;} 
    {\^2\   ;] 
    {\{3\   ;} 
    {\{\   ;} 
    } 

      _    ( froman  
fswiss),   _     ( 
Times New Roman, Arial  Old English)    .  
,     \fn,     
  .        
   (. 16.2). 

    436 MFC:   


     16.2.     

               

    \froman            Times New Roman, Palatino 
    \fswiss                 Arial 
    \fmodern           Courier New, Pica 
    \fscript                Cursive 
    \fdecor               Old English 


    ,     \fswiss Arial   0: 

    (\fonttbl {\f0\fswiss Arial;)} 
    \footnote 

         RTF-,     
  ,     
  .        : 

    $(\footnote string) 
    K(\footnote string) 
    #(\footnote string) 
    +(\footnote  : } 
    @{\footnote string) 

     $   ,      
.      . 
      ,   string     
.      .   
   .      "",  
     .    
    ,    . 
     #   ,    
       .  
        
  .     string    
.     ,  
  . 
     +   .   
        . 
(    ,      .)   
_   ,   . 
_      .  
         
 ,    ,    
_.        
.      \footnote    
 _,   

    16.                                                 437 

      _.        
 ,      
.        
,  . 
             , 
     ,    
,   BrowseButtonsQ. 
     @  \footnote      . 
    \ 
         .  \i0  
 .   \i    ,    
    ,     \i0  . 
    \ 
        . 
    \ 
        .     ,  
    .  ,   \, 
 ,    . 
    \rtfn 
          RTF.  Windows 95 
    4.  Windows 3.1     1. 
    \tab 
           . 
    \uldb 
        " " (..  ) 
   \uldb.    : 
    \uldb text 
    ,   text,      
,    .     
    \v. 
    \v 
           .   : 
    \v context-ID 
      context-ID     , 
  #\footnote.   ,  
     ,    \v. 

    438 MFC:   


       

           , 
   .        
.    HELPTEST.RTF. ,      
.         ! 

    (\rtf4\ansi 
    (\fonttbl(\f0\fswiss Arial;) (\fl\fdecor Old English;)) 
    \fs40 
    \fl 
    @{\footnote This is a comment. So is the following.) 
    @{\footnote This is a Sample Help File.) 
    $(\footnote Contents) 
    Contents of Sample Help File 
    \f0 
    \fs20 
    \par 
    \par 
    
    \tab(\uldb Main Window \v MainWindow) 
    \par 
    
    \tab(\uldb Push Button 1 \v PushButtonI) 
    \par 
    
    \tab{\uldb Push Button 2 \v PushButton2) 
    \par 
    
    \tab(\uldb Push Button 3 \v PushButton3) 
    \par 
    
    \tab{\uldb List Box \v ListBox) 
    \par 
    
    \tab{\uldb Check Box \v CheckBox) 
    \par 
    \par 
    \fl 
    \fs30 
    
    Select a Topic. 
    \fs20 
    \f0 
    \page 
    
    #{\footnote PushButtonI} 
    $(\footnote Push Button 1) 
    K(\footnote Push Button 1) 
    +(\footnote Push:A) 
    {\fs24\b Push Button One) 
    \par 
    \par 
    This is help for the first push button. 
    \par 
    \par 
    See also (\uldb Push Button 2 \v PushButton2) 
    \page 
    #(\footnote IDH_PB1) 
    This is the popup for the first push button. 


    16.                                               439 


    \paqe 
    #(\footnote PushButton2) 
    $(\footnote Push Button 2) 
    K{\footnote Push Button 2} 
    +(\footnote Push:B) 
    (\fs24\b Push Button Two) 
    \par 
    \par 
    This is help for the second push button. 
    \par 
    \par 
    See also {\uldb Push Button 3 \v PushButton3) 
    \page 
    #(\footnote IDH_PB2) 
    This is the popup for the second push button. 
    \page 
    #(\footnote PushButton3} 
    ${\footnote Push Button 3} 
    K(\footnote Push Button 31 
    +{\footnote Push:C} 
    (\fs24\b Push Button Three) 
    \par 
    \par 
    This is help for the third push button. 
    \par 
    \par 
    See also (\uldb Push Button 1 \v PushButtonI) 
    \page 
    #(\footnote IDH_PB3) 
    This is the popup for the third push button. 
    \page 
    #(\footnote MainWindow) 
    $(\footnote Main Window) 
    Kf\footnote Main Window) 
    (\fs24\b Main Window) 
    \par 
    \par 
    This is the main program window. 
    \page 
    #(\footnote IDHJY1AIN) 
    This is the Main Window popup help message. 
    \page 
    
    #(\footnote IDH_DLG) 
    This is a dialog box. 
    \page 
    
    #l\footnote ListBox) 
    $(\footnote List Box) 
    K(\footnote List Box) 
    +(\footnote Box:A) 
    (\fs24\b List Box) 
    \par 
    \par 


    440                                    MFC:   


    This is help for the list box. 
    \page 
    #<\footnote IDH_LB1) 
    This is the popup for the list box. 
    \page 
    #{\footnote CheckBox) 
    ${\footnote Check Box) 
    K(\footnote Check Box) 
    +{\footnote Box:B) 
    (\fs24\b Check Box) 
    \par 
    \par 
    This is help for the check boxes. 
    \page 
    #(\footnote IDH_CB1) 
    This is the popup for the check boxes. 
    \page 
    } 

        #\footnote,     IDH, 
    ,    .  
 #\footnote   ,    
      . 
             
.          
   (. 16.3): 

     16.3.   

    _1           700 
    IDH_PB2           701______ 
    1DH_PB3__________702______ 
    JDH_LB1           "703 
    TDHLCBI________~704______ 
    IDH_MAIN         705 
    ~ H_DLG 

             . 
              
  (map file).        
     : 

    !    ! 
    2    2 
         
    ^    


    16.                                                441 

    , ,   ,      
 : 

    IDH_PB1   700 
    IDH_PB2   701 
    IDH_PB3   702 
    IDH_LB1   703 
    IDH_CB1   704 
    IDHJ4AIN 705 
    IDH_DLG   706 

             
   BrowseButtonsQ     
.  ,     ,     
  Options   .    , 
   .      
   "Sample Help File". 
           HELPTEST.HLP.  
     ,     ,  
    . 

         

            
,     .    
 ,       
 .        
  Windows,  ,     . 
          
   ,    . 
     MFC       
. ,      010000 
(65536)  OxIFFFF (131071)     .   
  020000 (131072)  Ox2FFFF (196607)   
   .     0  OxFFFF (65535) 
  ,  .  
     ,     
      ,    , 
  . ,    ,  
  ,     - ,  
  .       
  . 

    442                                    MFC:   


        MFC- 

          MFC-.   : 
    1.        . 
    2.    WM_CONTEXTMENU  WM_HELPINFO. 
    3.  ,    WM_HELPCOMMAND. 
    4.    Help    . 
    5.  ,   WinHelpO. 
           . 
   WinHelpO,      . 

     API- WinHelpO 

             ( 
     ),    
API- WinHelpO,    MFC-.   ,   
API-        . 
   : 

    BOOL WinHelp(HWND hwnd, LPCSTR IpszFilename, UINT Command, DWORD dwinfo); 

      hwnd   ,     
.    :     m_hWnd 
 CWnd. 
           Ips^Filename   
        .    
  .   MFC-     , 
  ,     m_pszHelpFilePath 
 CWinApp.      ,    
 HLP.   ,  ,     
   . 
     ,   WinHelpO,   
Command.      . 16.4: 

     16.4.   Command 

                     

    HELP_COMMAND         
    HELP_CONTENTS          (  HELP_FINDER) 
    HELP_CONTEXT           
    HELP_CONTEXTMENU       


    16.   443 


                     

    HELP_CONTEXTPOPUP       
    HELP_FINDER             Help Topics 
    HELP_FORCEF1LE          
    HELP_HELPONHELP           
    HELP_INDEX              (  HELP_FINDER) 
    HELP_KEY               ,     
    HELP_ML)LTIKEY         ,    
  
    HELP_PARTIALKEY       ,    
  
    HELP_QUIT               
    HELP_SETCONTENTS       
    HELP_SETINDEX             
    HELP_SETPOPUP_POS         
,      
    HELP_SETWINPOS               
   
    HELP_TCARD                   
        
    HELP_WM_HBLP            
           
.        dwinfo.   
       . 16.5: 

     16.5.   dwfnfo 

     Command        dwinfo 

    HELP_COMMAND          ,   
    HELP_CONTE1MTS        He  (  0) 
    HELP_CONTEXT            
    HELP_CONTEXTMENU       
    HELP_CONTEXTPOPUP      
    HELP_FINDER             (  0) 
    HELP_FORCEFILE          (  0) 
    HELP_HELPONHELP       (  0) 
    HELP_INDEX              (  0) 


    444                                    MFC:   


     Command        dwinfo 

    HELP_KEY                ,    
    HELP_MULTIKEY            MULTIKEYHELP 
    HELP_PARTIALKEY        ,     
    HELP_QU1T             He  (  0) 
    HELP_SETCONTENTS        
    HELP_SETINDEX            
    HELP_SETPOPUP_POS        POINTS 
    HELP_SETWINPOS           HELPWININFO 
    HELP_WM_HELP             

      HELP_WM_HELP  HELP_CONTEXTMENU   dwinfo  
 ,    .   dwinfo   
    DWORD.      .  
      ( , 
   ..),       
  ,    .    
 .          
  WM_COMMANDHELP, WM_HELPINFO  WM_CONTEXTMENU,  
  . 

      CWinApp::WinHelp() 

        API- WinHelpO  
  ,    CWinApp.   : 

    virtual void CWinApp::WinHelp(DWORD dwinfo, 
    UINT Cominand=HELP__CONTEXT) ; 

      dwinfo  Command    ,    
API-  WinHelpO,  . 
         ,   m_pszHelpFilePath. 

       

     MFC-     ,    
    : 

    ON_COMMAND(ID_HELP, OnHelp) 
    ON_COMMAND(ID_HELP_FINDER, OnHelpFinder) 
    ON_COMMAND(ID_HELP_INDEX, OnHelpIndex) 
    ON_COMMAND(ID_HELP_USING, OnHelpUsing) 
           
    ON_COMMAND(ID_CONTEXT_HELP, OnContextHelp) 


    16.                                                 445 

     OnHelpQ, OnHelpFinder(), OnHelpIndex(), OnHelpUsingO  
OnContextHelpO    CWinApp.   ,   
,   WinHelpO.     
(. 16.6): 

     16.6.   WinHelpO    

                        

    CWinApp::OnHelp()              WinHelpO,   
  . 
    CWinApp::OnHelpFinder()         WinHelpO   HELP_FINDER. 
    CWinApp::OnHelpIndex()          WinHelpO   HELPJNDEX. 
    CWinApp::OnHelpUsingO         WinHelpO   HELP_HELPONHELP. 
    CWinApp::OnContextHelp()        WinHelpO,   
  .      . 
   ,    . 

          MFC.   
,    ,    
  . 
           .   
     MFC    
   .  ,     
    OnHelpFinderQ, OnHelpIndexQ  OnHelpUsingO, 
   MFC.        
    OnHelpO  OnContextHelpO. 
           CWinApp,   
     ,    , 
 ,       CWinApp. 
           
,      .      
    . 

       

         ,     : 
  .    Windows- 
     (..   ) 
  Help  (  )    [F1].  
           
 ,     "?",      [F1 ]. 
(      [F1]   .) 

    446                                    MFC:   

             
-,   -   .    
.    [F1]   "?"     
: WM_COMMANDHELP  WM_HELPINFO.      
           ,  
    WM_CONTEXTMENU.     
       .  
       . 

      WM_COMMANDHELP 

     MFC        
 ,       
  WM_COMMANDHELP.     MFC  
.     ,    . 
-,        
AFXPRIV.H  AFXEXT.H.      ,   
   ,     

    ON_MESSAGE(WM_COMMANDHELP, OnCommandHelp) 

     ,    OnCommandHelpO,   
 : 

    afx msg LRESULT CWnd::OnCommandHelp(WPARAM wParam, LPARAM 1 Par am}; 

     wParam     .   IParam 
   .     
,      WM_COMMANDHELP. .. 
        ,   
   .     0,   
     . 
      ,    OnCommandHelpO 
      . 

      WM.CONTEXTMENU 

     ,       , 
   WM_CONTEXTMENU.    
 OnContextMenu(),    : 

    afx_msg void CWnd::OnContextMenu(CWnd *0wner, CPoint Loc); 

      Owner     ,   
  .   Loc      
 .    WM_CONTEXTMENU   
 ::WinHelp(),         
 m_hWnd,    ,    
 Owner.  ,     ::WinHelp()   

    16.   447 

      HELP_CONTEXTMENU , ,    
   .  ,     
 ,     . 

    :  WM_CONTEXTMENU    Windows 3.1. 


      WM_HELPINFO 

     ,     [F1]   "?", 
   WM_HELPINFO.     
 OnHelpInfoO,    : 

    afx_msg BOOL CWnd::OnHelpInfo(HELPINFO *HelpInfo); 

     Helplnfo      HELPINFO, 
   ,     . 
      .     
   ,     . 

     HELPINFO   : 
    typedef struct tagHELPINFO 
    ( 
    UINT cbSize; 
    int iContextType; 
    int iCtrlId; 
    HANDLE hItemHandle; 
    DWORD dwContextId; 
    POINT MousePos; 
    } HELPINFO; 

      cbSize   . 
     iContextType   ,    . 
    ,       
 HELPINFO_MENUITEM.       ,   
     HELPINFO_WINDOW.   iCtrlId 
   ,    . 
     hItemHandle    ,   . 
 dwContextId   ,     
 .   MousePos     . 
         OnHelpInfoO,    
,   ,     
,   .      
::WinHelp(),      (..  ) 
    hItemHandle.  ,    
     HELP_WM_HELP , ,   
    .     ::WinHelp() 
      ,   
   hItemHandle.      
     ,  
   .       . 

    448                                    MFC:   

    ,  ,     WM_HELPINFO  
  ,    .   
,    [F1]      
,   .     : 
      (        
),    [F1]      
.   -  ,      
,    .      
: ,     [F1]    
,     4)   ,     .  
      .     [F1] 
 -   (  ),   
    ,     . 
    , , ,       
.     [F1],    , 
      WM_HELPINFO.   :  
 ,    hItemHandle,    
,    ;     
 . 

      Help 

             
  .        
 : 
       , 
        , 
       . 
            About,  
  .        , 
    ,   . 

      " 

             
 "?".    ,      
   WS_EX_CONTEXTHELP.       
    CreateExQ,   CreateQ.   "?"  
   ,        DS_CONTEXTHELP. 

    16.                                                 449 


      

          ,   
   .     
   ,    .   
    .     
        ::WinHelp(),   
  CWinApp::WinHelp().   Help    
 ,      
,   ,       .  
    About.      . 16.3. 
         . ,    
    DIALOG  DIALOGEX.   
        (DS_CONTEXTHELP). 

    ; HELPTEST.RC 
    ;      
    #include <afxres.h> 
    #include "ids.h" 
    HelpMenu MENU 
    { 
    POPUP "SDialog" 
    ( 
    MENUITEM "&Dialog\tF2", IDM_DIALOG 
    MENUITEM "E&xit\tF3", IDM_EXIT 
    1 
    POPUP "SHelp" 
    ( 
    MENUITEM "SHelp Topics\tF4", IDM_HELP_INDEX 
    MENUITEM "SUsing Help\tF5", IDM_HELP_USING 
    MENUITEM "SHelp Finder\tF6", IDM_HELP_FINDER 
    MENUITEM "&About\tF7", IDM_ABOUTTHIS 
    } 
    } 
    HelpTest MENU 
    ( 
    MENUITEM "SDialog", IDM_DIALOG 
    MENUITEM "SExit", IDM_EXIT 
    } 
    
    HelpMenu ACCELERATORS 
    { 
    VK_F1, IDM_HELP, VIRTKEY 
    VK_F2, IDM_DIALOG, VIRTKEY 
    VK_F3, IDM_EXIT, VIRTKEY 
    VK_F4, IDM_HELP_INDEX, VIRTKEY 
    VK_F5, IDM_HELP_USING, VIRTKEY 


    450                                     MFC:   


    VK_F6, IDM_HELP_FINDER, VIRTKEY 
    VK_F7, IDM_ABOUTTHIS, VIRTKEY 
    ) 
    HelpDialog DIALOGEX 10, 10, 142, 110, IDH_DLG 
    CAPTION "Help Demonstration Dialog" 
    STYLE WS_POPUP | WS_SYSMENU | WS_VISIBLE | DS_CONTEXTHELP 
    ( 
    DEFPUSHBUTTON "Button I", IDD_PB1, 11, 10, 32, 14, 
    
    WS_CHILD I WS_VISIBLE | WS_TABSTOP 
    PUSHBUTTON "Button 2", IDD_PB2, 11, 34, 32, 14, 
    
    WS_CHILD | WS_VISIBLE I WS_TABSTOP 
    PUSHBUTTON "Button 3", IDD_PB3, 11, 58, 32, 14, 
    
    WS_CHILD | WS_VISIBLE I WS_TABSTOP 
    PUSHBUTTON "Cancel", IDCANCEL, 8, 82, 38, 16, 
    
    WS_CHILD I WS_VISIBLE I WS_TABSTOP 
    AUTOCHECKBOX "Checkbox I", IDD_CB1, 66, 50, 60, 30, 
    
    WS_CHILD | WS_VISIBLE I WS_TABSTOP 
    AUTOCHECKBOX "Checkbox 2", IDD_CB2, 66, 70, 60, 30, 
    
    WS_CHILD I WS_VISIBLE I WS_TABSTOP 
    LISTBOX IDD_LB1, 66, 5, 63, 33, LBS_NOTIFY I 
    WS_VISIBLE | WS_BORDER I WSJ/SCROLL I WS_TABSTOP 
    ) 

        IDS.H: 

    // IDS.H 
    #define IDM_DIALOG     100 
    ftdefine IDM_EXIT       101 
    #define IDM_ABOUTTHIS  102 
    #define IDD_PB1        200 
    #define IDD_PB2        201 
    ^define IDD_PB3        202 
    #define IDD_LB1        203 
    #define IDD_CB1        205 
    #define IDD_CB2        206 
    #define IDH_PB1        700 
    #define IDH_PB2        701 
    #define IDH_PB3        702 
    #define IDH_LB1        703 
    #define IDH_CB1        704 
    #define IDH_MAIN       705 
    #define IDH_DLG        706 


    16.                                                 451 

      4) HELPTEST.H,    : 

    // HELPTEST.H 
    
    //       
    class CMainWin : public CFrameWnd 
    { 
    public: 
    CMainWin () ; 
    afx_msg LRESULT OnCommandHelp(WPARAM, LPARAM); 
    
    //    
    afx msg void OnDialogO; 
    afx msg void OnExitO; 
    afx_msg void OnAboutThis (); 
    DECLARE_MESSAGE_MAP() 
    ); 
    
    //      
    class CApp : public CWinApp 
    ( 
    public: 
    BOOL Initlnstance (); 
    DECLARE_MESSAGE_MAP() 
    ); 
    
    //       
    class CSampleDialog : public CDialog 
    ( 
    public: 
    CSampleDialog(char *DialogName, CWnd *0wner) : 
    CDialog(DialogName, Owner) () 
    BOOL OnInitDialog() ; 
    afx_msg BOOL OnHelpInfo(HELPINFO *p) ; 
    afx_msg LRESULT OnCommandHelp(WPARAM, LPARAM); 
    afx msg void OnContextMenu(CWnd *0wner, CPoint Loc) ; 
    DECLARE_MESSAGE_MAP() 
    }; 

        .     
HELPTEST.CPP,      HELPTEST.EXE.     
      HELPTEST.HLP,  .  
  ,         
 . 

    452                                     MFC:   


    //     . 
    //    HELPTEST.CPP 
    #include <afxwin.h> 
    #include <afxext.h> 
    #include <afxpriv.h> 
    tinclude <strinq.h> 
    #include "helptest.h" 
    #include "ids.h" 
    DWORD HelpArray[] = { 
    IDD_PB1, IDH_PB1, 
    IDD_PB2, IDH_PB2, 
    IDD_PB3, IDH_PB3, 
    IDD_LB1, IDH_LB1, 
    IDD CB1, IDH CB1, //    
    IDD CB2, IDH CB1, //      //   
    ,  
    1; 
     ; //    
    CMainWin::CMainWin() ( 
    
    Create(NULL, "Demonstrate the Help System", WS_OVERLAPPEDWINDOW, 
rectDefault, NULL, "HelpMenu") ; 
    
    //     
    if('LoadAccelTable("HelpMenu")) 
    MessageBox("Cannot Load Accelerators", "Error"); 
    } 
    
    //   
    BOOL ::Initlnstance() 
    ( 
    m_pMainWnd = new CMainWin; 
    m_pMainWnd->ShowWindow(m_nCmdShow) ; 
    m_pMainWnd->UpdateWindow() ; 
    return TRUE; 
    ) 
    
    //      
    BEGIN_MESSAGE_MAP(CMainWin, CFrameWnd) 
    ON_MESSAGE(WM_COMMANDHELP, OnCommandHelp) 
    ON_COMMAND(IDM_DIALOG, OnDialoq) 
    ON_COMMAND(IDM_EXIT, OnExit) 


    16.                                                 453 


    ON_COMMAND(IDM_ABOUTTHIS, OnAboutThis) 
    END_MESSAGE_MAP() 
    
    //     
    BEGIN_MESSAGE_MAP(CApp, CWinApp) 
    ON_COMMAND(ID_HELP, OnHelp) 
    ON_COMMAND(ID_HELP_FINDER, OnHelpFinder) 
    ON_COMMAND(ID_HELP_INDEX, OnHelpIndex) 
    
    ON_COMMAND(ID_HELP_USING, OnHelpUsing) 
    END_MESSAGE_MAP() 
    
    //   IDM_DIALOG 
    afx msg void CMainWin::OnDialog() 
    ( 
    CSampleDialog diagOb ("HelpDialog", this); 
    diagOb.DoModal(); //     
    
    //   IDM EXIT 
    afx msg void CMainWin::OnExit () 
    ( 
    int response; 
    response = MessageBox ("Quit the Program?", "Exit", MB_YESNO) ; 
    if(response == IDYES) 
    SendMessage(WM_CLOSE); //   
    } 
    
    //   IDM_ABOUTTHIS 
    afx msg void CMainWin::OnAboutThis() 
    { 
    MessageBox("Help System Demo VI.O", "About"); 
    } 
    
    //      
    BEGIN_MESSAGE_MAP(CSampleDialog, CDialog) 
    ON_WM_CONTEXTMENU() 
    
    ON_WM_HELPINFO() 
    END_MESSAGE_MAP() 
    
    //    
    BOOL CSampleDialog::OnInitDialog() 
    { 
    CDialog::OnInitDialog; //     
    CListBox *lbptr = (CListBox *) GetDlgItem(IDD_LB1) ; 


    454                                    MFC:   


    //   lbptr->AddString("One") ; 
    lbptr->AddString("Two") ; 
    lbptr->AddString("Three") ; 
    lbptr->AddString("Four") ; 
    lbptr->AddString("Five") ; 
    lbptr->Add3tring("Six") ; 
    return TRUE; 
    //        
    afx msg void CSampleDialog::OnContextMenu(CWnd *0wner, CPoint Loc) 
    ( 
    
    ::WinHelp(Owner->m_hWnd, App.m_pszHelpFilePath, 
    HELP_CONTEXTMENU, (DWORD)HelpArray) ; 
    } 
    //    [Fl]   "?"    
    afx_msg BOOL CSampleDialog::OnHelpInf(HELPINFO *ObPtr) 
    ( 
    
    //        
    if((HWND) ObPtr->hItemHandle == m_hWnd) 
    
    ::WinHelp((HMND) ObPtr->hItemHandle, App.m_pszHelpFilePath, 
    HELP_CONTEXTPOPUP, IDH_DLG) ; 
    else //     
    //    
    
    ::WinHelp((HWND) ObPtr->hItemHandle, App.m_pszHelpFilePath, 
    HELP_WM_HELP, (DWORD) HelpArray) ; 
    return 1; 
    \ 
    
    //    [Fl]    
    afx_msg LRESULT CMainWindow::OnCommandHelp(WPARAM wParam, 
    LPARAM IParam) 
    ( 
    App.WinHelp((DWORD) "Main Window", HELP_KEY) ; 
    return 1; 
    } 


    16.                                                 455 


    11  Sample Help File ' 
    File, Edit Bookmark Qptions H.elp 
    UPtente	jndgx: 1 Beck j Pnnt 
    i Contents of Sample Help FileMain Window 
    Pu?h...But.ton..l. Push .Button 2 Push Button3 
    List  
    Check Bi:ix 
    Select a Topic. 
    \ Sample Help File 
    |J|e Edit Bookmark Options Help 
    , igontents	Index	Sack	Print | ^<	 
    Push Button TwoThis is help for the second push button. See also Push 
Button 3 

    . 16.3.     


    456 MFC:   


     Demonstrate the Help System 

    . 16.3.     () 


    16.    457 


        

          .     
    . -,     
 HelpArray.       
     .   
IDS.     IDH    ,   
   HELPTEST.PRJ    . ,   
         
.   .      
     ,      . 
         ,     
OnHelpInfo()   .    
  ,    , 
   .      ::WinHelp(), 
      HELP_WM_HELP.   
  ,    . 
    -,    ,   CWinApp::WinHelp() 
    .     
       .   
   WinHelpO   . 

       ? 

    ,   ,    WinHelpO   
    .       
   Windows.     
    . 
             
 .      
  " , ".    , ,  
   ,   ,  
    . ,   ,  
       . 
     .  ,      
       Windows.    
       ,    . 

    458                                    MFC:  