본문 바로가기

공부기록

공부기록, 2021-09-27(mfc 구조설명)

- mfc 구조설명
#1. CFrameWnd

-> 윈도우의 외곽 경계를 담당

-> 메뉴, 툴바, 상태바를 가지고 있음

 

#2. CVIew

-> 실제 화면 처리를 담당

-> 문자 출력, 그래픽 출력 등

 

#3. CDocument

->디스크에서 데이터를 읽고 저장

 

여기까지 MFC 이론에 대해서 살짝 정리를 해보았고,

 

다음은 MFC 계층 구조이다.

 

계층 구조


#1. CObject 클래스(최상위 클래스)

메모리에 클래스를 설정하는 기능

클래스를 할당하기 위해 new 연산자가 오버로딩 된다.

/MFC/Include/Afx.h에 설정

클래스의 기능과 종류를 알 수 있는 함수가 있다.

- IsSerializable() : 현재 클래스가 데이터를 디스크에 저장할 수 있는 기능을 자지고 있는지 없는지를 확인하는 함수

- AssertValid( ) : 현재 클래스가 유효한 클래스인가를 확인하는 함수

- Dump() : 현재 클래스의 상태를 확인하는 함수

디버깅할 때 이 함수를 이용하여 데이터의 상태를 확인하고 오류를 정리할 수 있음

 

#2. CCmdTarget클래스

메시지 전송을 담당하는 클래스

실질적으로 메시지를 처리하는 것이 아니라WM_COMMAND와 OLE 메시지만 담당

 

#3. CWnd 클래스

화면에 보이는 윈도우들은 모두 CWnd 에서 상속 받음

가장 많이 사용되는 클래스

윈도우의 최상위 클래스

상속해서 사용하지 직접 CWnd 클래스를 사용하지는 않는다.

 

#4. CWndThread 클래스

윈도우가 스레드로 돌아갈 수 있도록 구동 되는 클래스

- 스레드는 독립적인 형태로 구동 되는 하나의 모듈

한 개의 프로그램을 독립적으로 움직이려면 한 개의 프로그램은 한 개 이상의 CWinThread를 포함해야 한다

- Multi-tasking이 가능

 

#5. CWndApp 클래스

한 개의 프로그램을 포함하고 관장하는 클래스

 

#6. CDocument 클래스

데이터를 디스크에서 읽어 들이거나 디스크에 저장하는 부분을 담당하는 클래스

주로 알고리즘을 저장

나중에 다른 프로그램에서 재사용이 용이

 

#7. CWnd를 상속 받은 기타 클래스


CFrameWnd : 프레임 형태의 윈도우

CControlBar : 컨트롤바

CPrepertySheet : 프로퍼티 시트

CDialog : 대화 상자

CView : View 윈도우

Control Class : 각종 컨트롤들

## 자주 하는 실수
- 기본기능으로 때우려고함
## 큐
- 어차피 헷갈리니 자주보고쓰자
## 내가 모르는 것
- mfc구조설명

## 일정
- 14:00 ~ 15:00 : 운동
- 15:00 ~ 16:00 : 운동
- 17:00 ~ 18:00 : 공부, 영상1업로드
- 18:00 ~ 19:00 : 공부, 영상2업로드
- 19:00 ~ 20:00 : 공부, 영상3업로드
- 20:00 ~ 21:00 : 공부
- 21:00 ~ 22:00 : 공부