#include #include "resource.h" // ------------------------------------------------------------------------ class InternalData { public: CString getData(); void setData(CString); private: CString data; }; // ------------------------------------------------------------------------ CString InternalData::getData() { return data; } // ------------------------------------------------------------------------ void InternalData::setData(CString new_data) { data = new_data; } // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ InternalData DATA; // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ class CStatusDialog : public CDialog { public: CStatusDialog() : CDialog(STATUS_DIALOG) {}; afx_msg void OnOK(); afx_msg void OnQuit(); BOOL CStatusDialog::OnInitDialog(); private: DECLARE_MESSAGE_MAP() }; // ------------------------------------------------------------------------ afx_msg void CStatusDialog::OnOK() { EndDialog(IDOK); } // ------------------------------------------------------------------------ afx_msg void CStatusDialog::OnQuit() { EndDialog(IDCANCEL); } // ------------------------------------------------------------------------ BOOL CStatusDialog::OnInitDialog() { CDialog::OnInitDialog(); CEdit* pData; pData = (CEdit*) GetDlgItem(IDC_DATA_STATUS); pData->SetWindowText(DATA.getData()); return TRUE; } // ------------------------------------------------------------------------ BEGIN_MESSAGE_MAP(CStatusDialog, CDialog) ON_COMMAND(IDC_OK, OnOK) ON_COMMAND(IDC_QUIT, OnQuit) END_MESSAGE_MAP() // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ class CMainDialog : public CDialog { public: CMainDialog() : CDialog(MAIN_DIALOG) {}; afx_msg void OnShowStatus(); afx_msg void OnSetData(); private: DECLARE_MESSAGE_MAP() }; // ------------------------------------------------------------------------ afx_msg void CMainDialog::OnShowStatus() { int rv; CStatusDialog status_dialog; rv = status_dialog.DoModal(); if (rv == IDCANCEL) { MessageBox("Thanks for using this software", "Thanks!"); SendMessage(WM_CLOSE); } } // ------------------------------------------------------------------------ afx_msg void CMainDialog::OnSetData() { CEdit* pData; char buffer[80]; pData = (CEdit*) GetDlgItem(IDC_DATA_INPUT); pData->GetWindowText(buffer, 80); DATA.setData(buffer); MessageBox("Data set to '" + DATA.getData() + "'.", "Data Set!"); } // ------------------------------------------------------------------------ BEGIN_MESSAGE_MAP(CMainDialog, CDialog) ON_COMMAND(IDC_SHOW_STATUS, OnShowStatus) ON_COMMAND(IDC_SET_DATA, OnSetData) END_MESSAGE_MAP() // ------------------------------------------------------------------------ // ------------------------------------------------------------------------ class CMainApp : public CWinApp { public: BOOL InitInstance() { CMainDialog main; main.DoModal(); return FALSE; } }; // ------------------------------------------------------------------------ CMainApp theApplication;