반응형
출처 - 여기여기
프로젝트 이름은 Temp라고 했을 때,
각 추적점 및 TRACE를 추가하여 프로그램을 실행시킨 결과는 다음과 같다.
이 결과는 소스코드의 어느 클래스의 어느 함수부터 순서대로 실행되는지를 잘 보여주는 예이며,
이 실행흐름을 잘 알아둬야 한다고 한다!!
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
반응형
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
MFC 화면 화면 최대화, 최소화, 복귀시 처리 (OnSize 이벤트) (0) | 2014.07.25 |
---|---|
리스트(CListctrl)에서 체크상자(체크박스) 변경 확인하기 (0) | 2014.07.23 |
멀티라인 헤더(컬럼) 및 배경색 추가, 헤더(컬럼) 크기 고정, 행 높이 - 리스트 (0) | 2013.08.29 |
다이얼로그 작업표시줄에서 감추기기(이중 다이얼로그) (0) | 2013.07.05 |
특정 색상을 제외한 투명한 다이얼로그 (0) | 2013.05.07 |
댓글