2009. 8. 24. 16:27
Programming/MFC
1. CEx8View
private: //CInfo dlg; CButton m_pButton; public: virtual void OnInitialUpdate(); private: int m_nX; int m_nY; CString m_sStr;
2. DDX/DDV
3. CEx8View
BEGIN_MESSAGE_MAP(CEx8View, CView) // 표준 인쇄 명령입니다. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) ON_BN_CLICKED(ID_DISPDLG, OnButtonDown) END_MESSAGE_MAP() void CEx8View::OnButtonDown() { CInfo dlg; dlg.m_x = m_nX; dlg.m_y = m_nY; dlg.m_str = m_sStr; INT_PTR ret = dlg.DoModal(); if (ret == IDOK) { m_nX = dlg.m_x; m_nY = dlg.m_y; m_sStr = dlg.m_str; //Invalidate(); } }
4. Button
void CEx8View::OnInitialUpdate() { CView::OnInitialUpdate(); // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. RECT rect = CRect(10, 10, 300, 50); m_pButton.Create("좌표 및 문자열 넣기", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, rect, this, ID_DISPDLG); m_pButton.ShowWindow(SW_SHOW); }
5. CEx8View::OnActivateView
void CEx8View::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView) { // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. if (pActivateView == this) Invalidate(); CView::OnActivateView(bActivate, pActivateView, pDeactiveView); }
6. CEx8View::OnDraw
void CEx8View::OnDraw(CDC* pDC) { CEx8Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 여기에 원시 데이터에 대한 그리기 코드를 추가합니다. pDC->TextOut(m_nX, m_nY, m_sStr); }