본문 바로가기

프로그래밍/VC/VC.NET/Cs

MFC 애플리케이션 수행과정

원문 : http://blog.naver.com/suvisor/40042649671
[프로세스 시작]

CWinApp::CWinApp

WinMain   프로그램 시작점

::AfxWinMain ::AfxWinInit(), CWinApp::InitInstance(), CWinApp::Run() 을 차례로 호출

::AfxWinInit  MFC 애플리케이션 초기화

CWinApp::InitInstance 인스턴스 초기화, 프로파일읽음,CDocTemplete객체생성

CSingleDocTemplete 생성자

CWinApp::AddDocTemplete 도큐먼트 템플릿 바인딩



[도큐먼트, 뷰생성]

CWinApp::OnFileNew 파일메뉴에서 New 가 핸들러, 도큐먼트 초기화

CDocument::CDocument 생성자

CFrameWnd::CFrameWnd 주 윈도우 클래스 생성자

CFrameWnd::OnCreate WM_CREATE 메세지 핸들러

CView::CView

CView::OnInitialUpdate 생성자, 초기 업데이트수행


[메세지 처리]

CWinApp::Run 메세지 루프 진입

CWnd::WindowProc 윈도우 프로시저 호출

CCmdTarget::OnCmdMsg


[페인팅]

CWnd::OnEraseBkgndWM_ERASEBKGND

CView::OnPaint WM_PAINT

CView::OnDraw


[사용자입력]

CWnd::OnActivate WM_ACTIVATE

CWnd::OnSetFocus WM_SETFOCUS

CWnd::OnSetCursor WM_SETCURSOR

CWnd::OnChar WM_CHAR

CWnd::OnLButtonDown WM_LBUTTONDOWN


[프로세스마침]

CFrameWnd::OnClose WM_CLOSE

CWnd::DestroyWindow WM_DESTROY 소멸자 CView,CFrameWnd,CDocument,CSingleDocTemplete소멸자가 차례대로 수행됨

CWinApp::ExitInstance

CWinApp::~CWinApp


참고 :

CWinAPP::InitInstance()  -  초기화내용작성

CDocument::OnNewDocument()  -  도큐먼트 생성시, File/New를 선택할때 도큐먼트 초기화 하는 내용 코딩

CView::OnDraw()  -  화면을 다시 그릴때.

CView::GetDocument()  -  도큐먼트 객체 포인터를 얻어오는 함수.

CFrameWnd::PreCreateWindow()  -  윈도우생정전 호출. 윈도우 특성, 스타일 정함