|
|
1.1 root 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: /////////////////////////////////////////////////////////////////////////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.