class CMFC0418View : public CView
{
public:
CInput dlg;
}
// 대화상자 클래스 생서자
class CInput : public CDialog
{
public:
CInput(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CInput)
enum { IDD = IDD_DIALOG1 };
int m_int;
CString m_str;
//}}AFX_DATA
CView *m_view; // 이부분 코딩 인벨리를 하기위해 CView로 변수 선언!
}
CMFC0418View::CMFC0418View()
{
// TODO: add construction code here
dlg.m_int = 10;
dlg.m_str = "HELLO";
dlg.m_view = this; // <== 여기!
}
// 업데이트 버튼 눌렀을때!
void CInput::OnUpdate()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_view->Invalidate(); // CView로 선언한 변수로 인벨리를 할수 있다!
}
// 일반 대화상자 여는 메뉴선택시
void CMFC0418View::OnAdd()
{
// TODO: Add your command handler code here
dlg.DoModal();
}
// 모달리스 대화상자 여는 메뉴 선택시
void CMFC0418View::OnInputdate()
{
// TODO: Add your command handler code here
if ( dlg.GetSafeHwnd() == NULL )
dlg.Create( IDD_DIALOG1 );
dlg.ShowWindow(SW_SHOW);
// GetSafeHwnd() 는 윈도우에 핸들을 리턴한다. 윈도우가 존재하지 않으면 NULL
}
// 화면 출력부분
void CMFC0418View::OnDraw(CDC* pDC)
{
CMFC0418Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str;
str.Format("%d",dlg.m_int);
pDC->TextOut(100,200,str);
pDC->TextOut( 100,100, dlg.m_str );
}