home *** CD-ROM | disk | FTP | other *** search
- // inputvw.cpp : implementation file
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1995 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
-
- #include "stdafx.h"
- #include "viewex.h"
-
- #ifdef _DEBUG
- #undef THIS_FILE
- static char BASED_CODE THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CInputView
-
- IMPLEMENT_DYNCREATE(CInputView, CFormView)
-
- CInputView::CInputView()
- : CFormView(CInputView::IDD)
- {
- //{{AFX_DATA_INIT(CInputView)
- m_strData = "";
- m_iColor = -1;
- //}}AFX_DATA_INIT
- }
-
- CInputView::~CInputView()
- {
- }
-
- void CInputView::OnUpdate(CView*, LPARAM, CObject*)
- {
- CMainDoc* pDoc = GetDocument();
- m_strData = pDoc->m_strData;
-
- if (pDoc->m_colorData == RGB(255, 0, 0))
- m_iColor = 0;
- else if (pDoc->m_colorData == RGB(0, 255, 0))
- m_iColor = 1;
- else if (pDoc->m_colorData == RGB(0, 0, 255))
- m_iColor = 2;
- else
- m_iColor = -1;
-
- TRACE2("OnUpdate: m_iColor = %d ($%lx)\n", m_iColor, pDoc->m_colorData);
-
- UpdateData(FALSE); // set the data into the controls
- }
-
- void CInputView::DoDataExchange(CDataExchange* pDX)
- {
- CFormView::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CInputView)
- DDX_Text(pDX, IDC_EDIT1, m_strData);
- DDX_Radio(pDX, IDC_RADIO1, m_iColor);
- //}}AFX_DATA_MAP
- }
-
- BEGIN_MESSAGE_MAP(CInputView, CFormView)
- //{{AFX_MSG_MAP(CInputView)
- ON_EN_CHANGE(IDC_EDIT1, OnDataChange)
- ON_BN_CLICKED(IDC_RADIO1, OnDataChange)
- ON_BN_CLICKED(IDC_RADIO2, OnDataChange)
- ON_BN_CLICKED(IDC_RADIO3, OnDataChange)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CInputView message handlers
-
- void CInputView::OnDataChange()
- {
- if (!UpdateData())
- return;
-
- CMainDoc* pDoc = GetDocument();
- COLORREF color = RGB(255 * (m_iColor == 0),
- 255 * (m_iColor == 1),
- 255 * (m_iColor == 2));
-
- BOOL bUpdate = FALSE;
- if (m_strData != pDoc->m_strData)
- {
- pDoc->m_strData = m_strData;
- bUpdate = TRUE;
- }
- if (color != pDoc->m_colorData)
- {
- pDoc->m_colorData = color;
- bUpdate = TRUE;
- }
- if (bUpdate)
- {
- // if the document stored data then we would call SetModifiedFlag here
- pDoc->UpdateAllViews(this);
- }
- }
-
- /////////////////////////////////////////////////////////////////////////////
-