훈, IT 공부/C,C++,MFC

[MFC] MFC 실행순서( 생성 ~ 소멸 )

IT훈이 2018. 4. 30.
반응형

MFC 실행구조

 

 MFC 구조에 대해서는 잘 알아야 나중에 MDI가 나와도 당황하지 않을 것입니다. 기초부터 탄탄하게 만드는 것이 핵심이라 생각합니다. 분발하여 MFC 이겨봅시다. 


MFC 구조


CTempApp::CTempApp()   ------ App 클래스 변수가 전역변수로 선언되어있으므로 제일 먼저 생성자가 호출된다

CTempApp::InitInstance()   ------ MFC 코드에 숨겨진 AfxWinMain함수에서 호출된다. (프로그램의 설정정보 로딩, 파라미터 처리등을 담당)

CTempDoc::CTempDoc(void)   ------ InitInstance()에 의해 Document 객체가 제일먼저 생성된다

CMainFrame::CMainFrame(void)

CMainFrame::LoadFrame()   ------ 윈도우가 생성된다

CMainFrame::PreCreateWindow()

CMainFrame::PreCreateWindow()

CMainFrame::OnCreate()   ------ CMainFrame객체가 생성 및 윈도우가 생성되며 자동으로 WM_CREATE 메시지가 발생하여 호출된다

CMainFrame::OnCreateClient()

CTempView::CTempView()   ------ OnCreateClient()에 의해 View 객체가 생성된다

CTempView::Create()

CTempView::PreCreateWindow()

CTempView::OnCreate()

CTempView::OnShowWindow()   ------ 여기까지 진행하여 클라이언트 뷰를 생성하여 화면에 보여진다.

CMainFrame::OnCreateClient() - Return

CMainFrame::OnCreate() - Return   ------ 여기까지 해서 최종적으로 윈도우의 생성이 완료된다

CTempDoc::OnNewDocument()   ------ 새 문서를 만든다

CTempView::OnInitialUpdate()   ------ 새 문서를 만들거나 기존 문서를 열었다면 이 함수를 호출하여 화면 정리 및 적합한 내용을 화면에 표시한다

CMainFrame::OnActivateApp()

CMainFrame::OnActivate()   ------ 응용 프로그램의 최상위 윈도우가 화면에 표시 및 활성화된다

CMainFrame::OnShowWindow()

CTempView::GetDocument()

CTempApp::Run()   ------ 메시지 루프 돌입


------------------------------------------------------------------------------------ 여기까지가 실행 초기화


CMainFrame::OnClose()   ------ 윈도우를 닫았을 대 WM_CLOSE 메시지에 의해 호출

CMainFrame::OnShowWindow()

CMainFrame::OnActivate()

CMainFrame::OnActivateApp()

CMainFrame::DestroyWindow()   ------ OnClose()에 의해 호출된다

CMainFrame::OnDestroy()

CTempView::OnDestroy()   ------ 메인 프레임의 WM_DESTROY 메시지는 자식인 View 객체에도 전달된다

CTempView::PostNcDestroy()

CTempView::~CTempView()

CMainFrame::OnNcDestroy()

CMainFrame::PostNcDestroy()

CMainFrame::~CMainFrame()

CMainFrame::OnNcDestroy() - Return

CTempDoc::~CTempDoc()   ------ 모든 윈도우가 소멸되면 Document 객체도 소멸된다

CMainFrame::OnClose() - Return

CTempApp::ExitInstance()

CTempApp::Run() - Return



https://blog.naver.com/kofpw/80142411123 

출처



반응형

댓글