home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK11 / MFC / SAMPLES / TRACER / TRACER.CP$ / tracer
Encoding:
Text File  |  1992-01-10  |  2.7 KB  |  119 lines

  1. // tracer.cpp : MFC Windows trace control application
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992 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 Microsoft
  9. // QuickHelp documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include <afxwin.h>
  14.  
  15. /////////////////////////////////////////////////////////////////////////////
  16. // Dialog class
  17.  
  18. class CPromptDlg : public CModalDialog
  19. {
  20.     BOOL    m_bEnabled;
  21.     UINT    m_flags;
  22. public:
  23.     CPromptDlg();
  24.  
  25.     void Save();
  26.  
  27.     BOOL OnInitDialog();
  28.     void OnOK();
  29. };
  30.  
  31. static char BASED_CODE szIniFile[] = "AFX.INI";
  32. static char BASED_CODE szDiagSection[] = "Diagnostics";
  33.  
  34. CPromptDlg::CPromptDlg()
  35.     : CModalDialog("PROMPT")
  36. {
  37.     m_bEnabled = ::GetPrivateProfileInt(szDiagSection, "TraceEnabled", 
  38.         FALSE, szIniFile);
  39.     m_flags = ::GetPrivateProfileInt(szDiagSection, "TraceFlags", 
  40.         0, szIniFile);
  41. }
  42.  
  43. void CPromptDlg::Save()
  44. {
  45.     char szT[32];
  46.     wsprintf(szT, "%d", m_bEnabled);
  47.  
  48.     if (!::WritePrivateProfileString(szDiagSection, "TraceEnabled", 
  49.         szT, szIniFile))
  50.     {
  51.         MessageBox("Unable to Write to Initialization File",
  52.             "Tracer", MB_ICONEXCLAMATION);
  53.     }
  54.  
  55.     wsprintf(szT, "%d", m_flags);
  56.     if (!::WritePrivateProfileString(szDiagSection, "TraceFlags", szT, 
  57.         szIniFile))
  58.     {
  59.         MessageBox("Unable to Write to Initialization File",
  60.             "Tracer", MB_ICONEXCLAMATION);
  61.     }    
  62. }
  63.  
  64. BOOL CPromptDlg::OnInitDialog()
  65. {
  66.     if (m_bEnabled)
  67.         ((CButton*)GetDlgItem(512))->SetCheck(TRUE);
  68.  
  69.     for (int i = 0; i < 5; i++)
  70.     {
  71.         CButton* pCheck = (CButton*)GetDlgItem(256 + i);
  72.         if (pCheck == NULL)
  73.             break;      // no more checkboxes
  74.         if (m_flags & (1 << i))
  75.             pCheck->SetCheck(TRUE);
  76.     }
  77.     return TRUE;
  78. }
  79.  
  80. void CPromptDlg::OnOK()
  81. {
  82.     m_bEnabled = ((CButton*)GetDlgItem(512))->GetCheck();
  83.     m_flags = 0;
  84.  
  85.     for (int i = 0; i < 5; i++)
  86.     {
  87.         CButton* pCheck = (CButton*)GetDlgItem(256 + i);
  88.         if (pCheck == NULL)
  89.             break;      // no more checkboxes
  90.         if (pCheck->GetCheck())
  91.             m_flags |= (1 << i);
  92.     }
  93.     EndDialog(IDOK);
  94. }
  95.  
  96. /////////////////////////////////////////////////////////////////////////////
  97. // Application class
  98.  
  99. class CTracerApp : public CWinApp
  100. {
  101. public:
  102.     virtual BOOL InitInstance();
  103. };
  104.  
  105. CTracerApp theTracerApp;
  106.  
  107. BOOL CTracerApp::InitInstance()
  108. {
  109.     CPromptDlg  dlg;
  110.  
  111.     if (dlg.DoModal() == IDOK)
  112.         dlg.Save();
  113.  
  114.     ::PostQuitMessage(0);       // Exit application
  115.     return TRUE;
  116. }
  117.  
  118. /////////////////////////////////////////////////////////////////////////////
  119.