home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / mfc / controls / testhelp / thelpppg.cpp < prev    next >
C/C++ Source or Header  |  1998-03-26  |  5KB  |  150 lines

  1. // ThelpPpg.cpp : Implementation of the CTesthelpPropPage property page class.
  2.  
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "stdafx.h"
  14. #include "testhelp.h"
  15. #include "ThelpPpg.h"
  16.  
  17. #ifdef _DEBUG
  18. #define new DEBUG_NEW
  19. #undef THIS_FILE
  20. static char THIS_FILE[] = __FILE__;
  21. #endif
  22.  
  23.  
  24. IMPLEMENT_DYNCREATE(CTesthelpPropPage, COlePropertyPage)
  25.  
  26.  
  27. /////////////////////////////////////////////////////////////////////////////
  28. // Message map
  29.  
  30. BEGIN_MESSAGE_MAP(CTesthelpPropPage, COlePropertyPage)
  31.      //{{AFX_MSG_MAP(CTesthelpPropPage)
  32.     ON_BN_CLICKED(IDC_USETOOLTIP, OnUsetooltipClicked)
  33.     //}}AFX_MSG_MAP
  34. END_MESSAGE_MAP()
  35.  
  36.  
  37.  
  38.  
  39. /////////////////////////////////////////////////////////////////////////////
  40. // Initialize class factory and guid
  41.  
  42. IMPLEMENT_OLECREATE_EX(CTesthelpPropPage, "TESTHELP.TesthelpPropPage.1",
  43.     0x31a2b284, 0x8c11, 0x11cf, 0xb3, 0x7f, 0, 0xaa, 0, 0xb9, 0x2b, 0x50)
  44.  
  45.  
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CTesthelpPropPage::CTesthelpPropPageFactory::UpdateRegistry -
  48. // Adds or removes system registry entries for CTesthelpPropPage
  49.  
  50. BOOL CTesthelpPropPage::CTesthelpPropPageFactory::UpdateRegistry(BOOL bRegister)
  51. {
  52.     if (bRegister)
  53.         return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
  54.             m_clsid, IDS_TESTHELP_PPG);
  55.     else
  56.         return AfxOleUnregisterClass(m_clsid, NULL);
  57. }
  58.  
  59.  
  60. /////////////////////////////////////////////////////////////////////////////
  61. // CTesthelpPropPage::CTesthelpPropPage - Constructor
  62.  
  63. CTesthelpPropPage::CTesthelpPropPage() :
  64.      COlePropertyPage(IDD, IDS_TESTHELP_PPG_CAPTION)
  65. {
  66.      //{{AFX_DATA_INIT(CTesthelpPropPage)
  67.      m_szName1 = _T("");
  68.      m_szName2 = _T("");
  69.      m_szName3 = _T("");
  70.      m_bUseMine = FALSE;
  71.      m_szTipCaption = _T("");
  72.      m_bUseToolTip = FALSE;
  73.     m_nUsePopupHelp = -1;
  74.     //}}AFX_DATA_INIT
  75.  
  76. // Calling SetHelpInfo will set up the proper variables of COlePropertyPage
  77. // so that when someone connects to our IPropertyPage and calls
  78. // IPropertyPage::GetPageInfo the correct help information will be supplied.
  79. SetHelpInfo(_T("Names to appear in the control"),
  80.                _T("TESTHELP2.HLP"),
  81.                0);
  82.  
  83. }
  84.  
  85.  
  86. /////////////////////////////////////////////////////////////////////////////
  87. // CTesthelpPropPage::DoDataExchange - Moves data between page and properties
  88.  
  89. void CTesthelpPropPage::DoDataExchange(CDataExchange* pDX)
  90. {
  91.      //{{AFX_DATA_MAP(CTesthelpPropPage)
  92.      DDX_Control(pDX, IDC_TIPCAPTION, m_CtrlTipCaption);
  93.     DDP_Text(pDX, IDC_NAME1, m_szName1, _T("Name1") );
  94.     DDX_Text(pDX, IDC_NAME1, m_szName1);
  95.     DDP_Text(pDX, IDC_NAME2, m_szName2, _T("Name2") );
  96.     DDX_Text(pDX, IDC_NAME2, m_szName2);
  97.     DDP_Text(pDX, IDC_NAME3, m_szName3, _T("Name3") );
  98.     DDX_Text(pDX, IDC_NAME3, m_szName3);
  99.     DDP_Check(pDX, IDC_USEMINE, m_bUseMine, _T("UseMyHelp") );
  100.     DDX_Check(pDX, IDC_USEMINE, m_bUseMine);
  101.     DDP_Text(pDX, IDC_TIPCAPTION, m_szTipCaption, _T("ToolTipText") );
  102.     DDX_Text(pDX, IDC_TIPCAPTION, m_szTipCaption);
  103.     DDP_Check(pDX, IDC_USETOOLTIP, m_bUseToolTip, _T("ShowToolTip") );
  104.     DDX_Check(pDX, IDC_USETOOLTIP, m_bUseToolTip);
  105.     DDP_Radio(pDX, IDC_POPUPHELP, m_nUsePopupHelp, _T("UsePopupHelp") );
  106.     DDX_Radio(pDX, IDC_POPUPHELP, m_nUsePopupHelp);
  107.     //}}AFX_DATA_MAP
  108.      DDP_PostProcessing(pDX);
  109. }
  110.  
  111.  
  112.  
  113. /////////////////////////////////////////////////////////////////////////////
  114. // CTesthelpPropPage message handlers
  115.  
  116. BOOL CTesthelpPropPage::OnInitDialog()
  117. {
  118.      COlePropertyPage::OnInitDialog();
  119.  
  120.      // enable or disable the ToolTip caption edit control
  121.      m_CtrlTipCaption.EnableWindow(m_bUseToolTip);
  122.  
  123.      return FALSE;  // return TRUE unless you set the focus to a control
  124.                    // EXCEPTION: OCX Property Pages should return FALSE
  125. }
  126.  
  127.  
  128.  
  129. BOOL CTesthelpPropPage::OnHelp(LPCTSTR)
  130. {
  131.  
  132.     // OnHelp is called by IPropertyPage::Help.  When someone requests
  133.     // it, we supply help by calling CWinApp::WinHelp
  134.      AfxGetApp()->WinHelp(0,HELP_CONTENTS);
  135.  
  136.  
  137. return TRUE;
  138. }
  139.  
  140.  
  141.  
  142.  
  143. void CTesthelpPropPage::OnUsetooltipClicked()
  144. {
  145.      //Enable or disable the ToolTip caption window.
  146.      UpdateData(TRUE);
  147.      m_CtrlTipCaption.EnableWindow(m_bUseToolTip);
  148.  
  149. }
  150.