카테고리 없음

MFC(5) MFC SDI 프로그램 기본 구조 2

leeyk2121 2025. 1. 17. 01:53

 

 

 

HelloMFC를 실행하면 해당 창이 뜨고 

 

위와 같이 분리가 된다는데.. 나는 안된다.. 왤까..

용어 정리

Caption bar

 

저기 저 창닫기, 창크기 축소, 창 내리기 버튼, 아래 파일 편집 등등을 다 합쳐서 

 CFrameWnd라고 한다. 이놈은 부모가 된다. 이 밑에 자식을 가진다. 

그 자식중에 Toolbar라고 한다. 아래에 있는 그림이다. 

Tool bar가 Caption bar에 도킹한다고 보면 된다. 

status bar(빨간색 윤곽선)

 

이건 원래 고정되어 있다.

Cview(자식..)

이 윈도우에 사실상 겹치게 되는 놈(녹색 윤곽선)이 Cview

 

 

Z order

윈도우가 겹첬을 때 누가 더 잘 보이게 하냐 이거다. 윈도우 보이게 하는 순서다. 

 

 

보통 기본적으로 FrameWnd는 최소 한개가 있어야 한다. 근데 child는 1~n개가 존재할 수 있다. view는 눈에 보이지 않지만 눈에 보이는 것은 시각화 된것으로 메모리에 정보가 담겨있다. 이 정보가 C Document다. 

 view가 여러개가 되면 Document가 여러개가 있다.

 

 

break point를 사용해서 InitInstace()를 봐보면 wWinMain이 부른 것임을 확인할 수 있다. 

 

 

문서 양식을 생성하고 메인프레임 , view, document도 생성해준다. 

이때 InitInstance()함수가 SDI 기준에서 True 반환을 하면 이때부터 메시지 루프가 돌기시작한다. 

이 메시지 루프가 돌때는 RUN 함수이다. 

여기서 저 CHelloMFCApp을 alt+enter를 누르면 속성창이 뜨고 재정의를 누른 후 RUN에가서 add Run을 하면 새로운 RUN함수가 생긴다.

CWinApp이 호출되는 순간 메시지 루프가 돌고 처리가 된다. 필요한걸 알고 재정의해서 내 코드를 적어야한다. 

호출 전?후?에 할 것인지 잘 정해야한다.

[출처]https://www.youtube.com/watch?v=7jnrurlCGtM