home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / mfc / ole / tstcon / taborddg.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1998-03-27  |  2.3 KB  |  102 lines

  1. // TabOrderDlg.Cpp : implementation file
  2. //
  3.  
  4. #include "StdAfx.H"
  5. #include "TestCon.H"
  6. #include "Resource.HM"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CTabOrderDlg dialog
  16.  
  17.  
  18. CTabOrderDlg::CTabOrderDlg( CWnd* pParent ) :
  19.    CDialog( CTabOrderDlg::IDD, pParent )
  20. {
  21.     //{{AFX_DATA_INIT(CTabOrderDlg)
  22.         // NOTE: the ClassWizard will add member initialization here
  23.     //}}AFX_DATA_INIT
  24. }
  25.  
  26. void CTabOrderDlg::DoDataExchange( CDataExchange* pDX )
  27. {
  28.    int nItems;
  29.    int iItem;
  30.    CTestContainer98Item* pItem;
  31.    CString strItemName;
  32.    POSITION posItem;
  33.  
  34.     CDialog::DoDataExchange( pDX );
  35.     //{{AFX_DATA_MAP(CTabOrderDlg)
  36.     DDX_Control(pDX, IDC_TABORDER, m_lboxTabOrder);
  37.     //}}AFX_DATA_MAP
  38.  
  39.    if( pDX->m_bSaveAndValidate )
  40.    {
  41.       m_lpTabOrder.RemoveAll();
  42.       nItems = m_lboxTabOrder.GetCount();
  43.       for( iItem = 0; iItem < nItems; iItem++ )
  44.       {
  45.          pItem = (CTestContainer98Item*)m_lboxTabOrder.GetItemDataPtr( iItem );
  46.          ASSERT( pItem != NULL );
  47.          m_lpTabOrder.AddTail( pItem );
  48.       }
  49.    }
  50.    else
  51.    {
  52.       m_lboxTabOrder.ResetContent();
  53.       posItem = m_lpTabOrder.GetHeadPosition();
  54.       while( posItem != NULL )
  55.       {
  56.          pItem = m_lpTabOrder.GetNext( posItem );
  57.          ASSERT( pItem != NULL );
  58.          strItemName = pItem->GetDisplayName();
  59.          iItem = m_lboxTabOrder.AddString( strItemName );
  60.          m_lboxTabOrder.SetItemDataPtr( iItem, pItem );
  61.       }
  62.    }
  63. }
  64.  
  65.  
  66. BEGIN_MESSAGE_MAP( CTabOrderDlg, CDialog )
  67.     //{{AFX_MSG_MAP(CTabOrderDlg)
  68.     ON_WM_HELPINFO()
  69.     ON_WM_CONTEXTMENU()
  70.     //}}AFX_MSG_MAP
  71. END_MESSAGE_MAP()
  72.  
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CTabOrderDlg message handlers
  75.  
  76. BOOL CTabOrderDlg::OnInitDialog()
  77. {
  78.     CDialog::OnInitDialog();
  79.  
  80.    return( TRUE );
  81. }
  82.  
  83.  
  84. static DWORD rgmapCHID[] =
  85. {
  86.    IDC_TABORDER, HIDC_TABORDER,
  87.    0, 0
  88. };
  89.  
  90. BOOL CTabOrderDlg::OnHelpInfo( HELPINFO* pHelpInfo )
  91. {
  92.    return( ::WinHelp( HWND( pHelpInfo->hItemHandle ),
  93.       AfxGetApp()->m_pszHelpFilePath, HELP_WM_HELP, DWORD( LPVOID(
  94.       rgmapCHID ) ) ) );
  95. }
  96.  
  97. void CTabOrderDlg::OnContextMenu( CWnd* pWnd, CPoint /* point */ )
  98. {
  99.    ::WinHelp( HWND( *pWnd ), AfxGetApp()->m_pszHelpFilePath, HELP_CONTEXTMENU,
  100.       DWORD( LPVOID( rgmapCHID ) ) );
  101. }
  102.