본문 바로가기
프로그래밍/라이브러리

[MFC] class 구조와 몇가지...

by 써드아이 2008. 2. 6.

CView  : 데이타의 화면 표시 담당
  Invalidate()로 화면 갱신 -> 내부적으로 WM_PAINT를 발생시킴
CDocument : 데이타 처리 담당
CWinApp  : 전체 프로그램의 제어 담당
CMainFrame : 윈도 전체 프레임의 제어 담당


CWnd    : WM_ 으로 시작하는 메세지 처리 담당
CCmdTarget : WM_COMMAND 메세지 담당
    (메뉴가 눌리거나 하는 경우 발생하는 메세지로
    특별히 Event라고 불리운다.)


화면이 다시 그려져야 하는 경우 WM_PAINT 메세지가 발생한다.
이에 따라 OnPaint()/OnDraw() 함수가 호출되는데 CView 클래스에서
파생된 클래스는 OnDraw() 에서 처리하는 것이 바람직하다.

OnPaint() 내부적으로 OnDraw() 함수를 호출하는데 프린트를 담당하는
OnPrint()에서도 호출된다. 따라서 프린터 출력이 필요한 경우는
OnDraw()에서 처리하는게 유리하다.


UpdateData( TRUE )  -> Control에서 변수로
UpdateData( FALSE )  -> 변수에서 Control로


GetDocument()
GetDC()
AfxGetApp()

CWnd *pWnd = GetDlgItem( 리소스 아이디 );

HWnd hWnd = GetSafeHwnd();