LuvSea

[MFC 기초] 자동생성 클래스 분석 - CView 본문

sTudy

[MFC 기초] 자동생성 클래스 분석 - CView

사랑海 2009. 10. 13. 20:21
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
CLyraView 클래스는 CView 클래스를 상속받은 것이다. 뷰 클래스의 영역을 설명하기 위해 예를 들겠다.
우리가 잘 쓰는 메모장에서 실제 우리가 텍스트를 쓰는 하얀 영역을 말한다.
/* 메시지 매핑 */ 
BEGIN_MESSAGE_MAP(CDEMO1View, CView) 

//{{AFX_MSG_MAP(CDEMO1View) 

ON_WM_LBUTTONDOWN() 

//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP() 

/* 생성자 함수 */ 
CDEMO1View::CDEMO1View()
{ 
    // TODO: add construction code here 
} 

/* 소멸자 함수 */
CDEMO1View::~CDEMO1View()
{
} 

// 함수 OnDraw안에 화면에 뿌려  줄 기능을 추가하면 된다. 
// 화면에 출력할 여러 정보는 CDocument 클래스에 추가한다.


void CDEMO1View::OnDraw(CDC* pDC)
{ 
    // 일단 도큐먼트와 연결을 한다. 
    CDEMO1Dov* pDoc = GetDocument(); 

    // ASSERT_VALID라는 함수는 pDoc가  활성화되어 있는 것을 보증하는 함수이다. 
    // 즉, 프로그램이  실행되다가 오류가 발생하여 링크가 되지 않아 도큐먼트를 받지 못하면 
    // pDoc가  null값이 되므로 '응용 프로그램 에러'라는 메시지를 출력하고 프로그램을 종료하라는 뜻이다.

    ASSERT_VALID(pDoc); 
    // TODO: add draw code for native data here
} 

/* 프린팅 미리보기 기능을  수행하는 함수이다. 
    이 기능은 프로젝트 시작시 AppWizard 4단계에서  Printing and Print Preview 옵션을 선택했기 때문이다. */
BOOL CDEMO1View::OnPreparePrinting(CPrintInfo* pInfo)
{ 
    //default preparation
    return DOPreparePrinting(pInfo); 
}

/* 프린팅하는 함수 */
void CDEMO1View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{ 
    //TODO: add extra initialization before  printing 
}

/* 프린팅이 끝났을 때 사용하는 함수 */
void CDEMO1View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{ 
    //TODO: add cleanup after printing 
} 
지금까지 프로젝트를 만들면 생성되는 4개의 클래스에 대해서 간단히 설명했다.
CWinApp 클래스가 먼저 실행되어 메인 프레임을 만들고 CMainFrame 클래스가 수행되면서 메뉴와 도구바, 상태바를 연결하고
CWinApp 클래스가 다시 View와 Document를 만듭니다. 이렇게 하여 CView와 CDocument 클래스인 CLyraView와 CLyraDoc가 수행되는 것이다.

Comments