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 / logdg.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1998-03-27  |  3.1 KB  |  130 lines

  1. // LoggingDlg.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. // CLoggingDlg dialog
  16.  
  17.  
  18. CLoggingDlg::CLoggingDlg(CWnd* pParent /*=NULL*/)
  19.     : CDialog(CLoggingDlg::IDD, pParent)
  20. {
  21.     //{{AFX_DATA_INIT(CLoggingDlg)
  22.     m_strFileName = _T("");
  23.     m_iLogType = -1;
  24.     //}}AFX_DATA_INIT
  25. }
  26.  
  27.  
  28. void CLoggingDlg::DoDataExchange(CDataExchange* pDX)
  29. {
  30.     CDialog::DoDataExchange(pDX);
  31.     //{{AFX_DATA_MAP(CLoggingDlg)
  32.     DDX_Control(pDX, IDC_FILENAME_BROWSE, m_butFileNameBrowse);
  33.     DDX_Control(pDX, IDC_FILENAME, m_eboxFileName);
  34.     DDX_Text(pDX, IDC_FILENAME, m_strFileName);
  35.     DDX_Radio(pDX, IDC_LOGTONULL, m_iLogType);
  36.     //}}AFX_DATA_MAP
  37. }
  38.  
  39.  
  40. BEGIN_MESSAGE_MAP(CLoggingDlg, CDialog)
  41.     //{{AFX_MSG_MAP(CLoggingDlg)
  42.     ON_BN_CLICKED(IDC_LOGTODEBUG, OnLogToDebug)
  43.     ON_BN_CLICKED(IDC_LOGTOFILE, OnLogToFile)
  44.     ON_BN_CLICKED(IDC_FILENAME_BROWSE, OnFileNameBrowse)
  45.     ON_BN_CLICKED(IDC_LOGTONULL, OnLogToNull)
  46.     ON_BN_CLICKED(IDC_LOGTOOUTPUT, OnLogToOutput)
  47.     ON_WM_HELPINFO()
  48.     ON_WM_CONTEXTMENU()
  49.     //}}AFX_MSG_MAP
  50. END_MESSAGE_MAP()
  51.  
  52. /////////////////////////////////////////////////////////////////////////////
  53. // CLoggingDlg message handlers
  54.  
  55. BOOL CLoggingDlg::OnInitDialog()
  56. {
  57.     CDialog::OnInitDialog();
  58.  
  59.    m_eboxFileName.EnableWindow( m_iLogType == 3 );
  60.    m_butFileNameBrowse.EnableWindow( m_iLogType == 3 );
  61.  
  62.     return TRUE;  // return TRUE unless you set the focus to a control
  63.                   // EXCEPTION: OCX Property Pages should return FALSE
  64. }
  65.  
  66. void CLoggingDlg::OnLogToDebug()
  67. {
  68.    m_eboxFileName.EnableWindow( FALSE );
  69.    m_butFileNameBrowse.EnableWindow( FALSE );
  70. }
  71.  
  72. void CLoggingDlg::OnLogToFile()
  73. {
  74.    m_eboxFileName.EnableWindow( TRUE );
  75.    m_butFileNameBrowse.EnableWindow( TRUE );
  76. }
  77.  
  78. void CLoggingDlg::OnFileNameBrowse()
  79. {
  80.    int nResult;
  81.  
  82.    CFileDialog dlg( FALSE, _T( "Log" ) );
  83.  
  84.    nResult = dlg.DoModal();
  85.    if( nResult != IDOK )
  86.    {
  87.       return;
  88.    }
  89.  
  90.    m_strFileName = dlg.GetPathName();
  91.    m_eboxFileName.SetWindowText( m_strFileName );
  92. }
  93.  
  94. void CLoggingDlg::OnLogToNull()
  95. {
  96.    m_eboxFileName.EnableWindow( FALSE );
  97.    m_butFileNameBrowse.EnableWindow( FALSE );
  98. }
  99.  
  100. void CLoggingDlg::OnLogToOutput()
  101. {
  102.    m_eboxFileName.EnableWindow( FALSE );
  103.    m_butFileNameBrowse.EnableWindow( FALSE );
  104. }
  105.  
  106.  
  107. static DWORD rgmapCHID[] =
  108. {
  109.    IDC_FILENAME_BROWSE, HIDC_FILENAME_BROWSE,
  110.    IDC_FILENAME, HIDC_FILENAME,
  111.    IDC_LOGTOFILE, HIDC_LOGTOFILE,
  112.    IDC_LOGTODEBUG, HIDC_LOGTODEBUG,
  113.    IDC_LOGTOOUTPUT, HIDC_LOGTOOUTPUT,
  114.    IDC_LOGTONULL, HIDC_LOGTONULL,
  115.    0, 0
  116. };
  117.  
  118. BOOL CLoggingDlg::OnHelpInfo( HELPINFO* pHelpInfo )
  119. {
  120.    return( ::WinHelp( HWND( pHelpInfo->hItemHandle ),
  121.       AfxGetApp()->m_pszHelpFilePath, HELP_WM_HELP, DWORD( LPVOID(
  122.       rgmapCHID ) ) ) );
  123. }
  124.  
  125. void CLoggingDlg::OnContextMenu( CWnd* pWnd, CPoint /* point */ )
  126. {
  127.    ::WinHelp( HWND( *pWnd ), AfxGetApp()->m_pszHelpFilePath, HELP_CONTEXTMENU,
  128.       DWORD( LPVOID( rgmapCHID ) ) );
  129. }
  130.