#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(); BOOL CStatusDialog::OnInitDialog(); private: DECLARE_MESSAGE_MAP() }; // ------------------------------------------------------------------------ afx_msg void CStatusDialog::OnOK() { EndDialog(IDOK); } // ------------------------------------------------------------------------ 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) 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() { CStatusDialog status_dialog; status_dialog.DoModal(); } // ------------------------------------------------------------------------ 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;