-
SDI 구조 및 객체 생성 순서MFC 2025. 4. 6. 15:51
MFC에선 main함수가 존재하지 않는다. 대신 AfxWinMain함수가 시작한다.
기본 구조 및 객체 생성 순서
1. AfxWinMain()
2. CWinApp (Process, Thread) (응용 프로그램에 해당)
- Init/ExitInstance(), Run()
- theApp (전역 변수)
3. CDocument (Data)
- 데이터(혹은 파일)
4. CFrameWnd (GUI - Frame)
5. CView (GUI - View)
InitInstance -> Run -> ExitInstance
각 클래스 접근 방법
CWinApp <- 응용 program 자체
- theApp, AfxGetApp()
CDocument
- CFrameWnd::GetActiveDocument()
CFrameWnd
- AfxGetMainWnd()
CView -> 메뉴 또는 화면
- CFrameWnd::GetActiveView()
기능을 구현할 때 위 4개의 클래스중 하나를 선택해서 거기에 넣는다고 생각하면 된다.
메뉴가 화면과 직접적인 연관이 있으면 View, 그게아니라면 FrameWnd멤버로 넣는것이 좋다.
Afx함수는 전역함수이기 때문에 App, MainFrame 같은 포인터를 리턴해준다.
Document-View 구조에서 하나의 Document가 여러 개의 View와 연결될 수 있다.
그 View목록은 내부적으로 연결 리스트로 관리된다.
'MFC' 카테고리의 다른 글
메시지 맵과 핸들러 (0) 2025.04.07 프레임워크 흐름 분석 (0) 2025.04.07 SDI 예제 생성 (0) 2025.04.06 CWnd 클래스와 윈도우 속성 및 윈도우 관계 (0) 2025.04.06 솔루션, 프로젝트, 리소스 (0) 2025.04.04