일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- SQLD이론
- 파이썬
- BFS
- 백준
- Javascript
- beautifulsoup
- 게임서버개발
- clean code
- git
- c++
- 폴링vs이벤트
- 오픽
- N-Queen
- 클린 코드
- 주석
- 자청
- sqld요약
- sqld
- SQLD 이론
- 오픽 초보
- Backtracking
- Python
- 클린코드
- MFC
- 역행자
- 서버아키텍처
- SW개발자를 위한 성능좋은 SQL
- 알고리즘
- DP
- 서버최적화
- Today
- Total
가취공부하자
MFC 기본 개념 - MFC 계층 구조 본문
위 그림은 기본적인 MFC가 생성한 클래스 계층구조이다.
이 글에선 MFC를 사용해 윈도우 응용 프로그램을 만들 때 가장 중요한 클래스인 AFX(Application Framewokr)클래스에 대해서 알아보겠다.
* 여기서 Hello는 MFC 프로젝트 명
* 파생되는 클래스는 기본 클래스의 함수를 오버라이딩해서 저장한다. 따라서 원하는 기능을 파생 클래스 내에 저장하고 수정한다.
1. CWinApp 클래스
C언어의 main함수 역할을 하며 프로그램을 시작시키고 나머지 클래스를 생성하고 관리한다.
프로그램을 구동시키는 CHelloApp 클래스를 파생시킨다.
<어플리케이션 클래스에서 주요 함수>
InitInstance();
InitInstance 함수 안에서 document, frame, view, resource들을 관리한다.
Run();
실행시 무한 루프를 돌며 메시지를 감지하고 처리한다. 윈도우 닫기[x] 버튼을 누르면 WM_QUIT메세지가 발송되는데 이 메세지를 만나면 무한루프를 빠져나온다. 함수 자체는 우리가 볼 수 없다.
ExitInstance();
WM_QUIT메세지를 만나면 해당함수가 호출된다. 이 함수가 호출되면 프로그램이 종료된다.
2. CFrameWnd (메인 프레임 클래스)
응용 프로그램의 기본적인 틀을 관리하며 응용프로그램의 주된 골격이 되는 창의 틀에 해당한느 CMainFrame클래스를 파생한다.
<메인 프레임 클래스안에서 주요 함수>
OnCreate();
툴바, 생성바를 생성한다.
3. CDocument (다큐먼트 클래스)
응용프로그램에 사용되는 데이터를 내부적으로 저장하고 관리하는 클래스이다.
예를 들어 응용 프로그램이 단일 문서, 다중 문서 형태로 작성될 경우 문서의 정보를 내부적으로 관리하고 저장하는 클래스이다.
CHelloDoc클래스를 파생시킨다.
<다큐먼트 클래스안에서 주요 함수>
Serialize();
데이터(파일)를 외부에 저장하거나 가져올 때 파일 입출력 작업을 한다.
4. CView(뷰 클래스)
CDoucmnet클래스가 관리하는 데이터 들을 시각적으로 보여주는 역할을 한다.
응용 프로그램의 결과를 출력하는 CHelloView클래스를 파생시킨다.
<뷰 클래스안에서 주요 함수>
OnDraw();
다큐먼트 클래스 관리하는 데이터를 클라이언트 영역에 출력한다.
GetDocument();
다큐먼트 클래스 내에 정보를 가져오기 위한 함수이다. 다큐먼트 객체 포인터를 얻어 주는 함수.
'c++ > MFC' 카테고리의 다른 글
[MFC] 메시지 핸들러 예제 (0) | 2022.05.26 |
---|---|
[MFC 개념] 메세지 처리 방식 (0) | 2022.05.19 |
MFC 프로그래밍 기본 개념1 (0) | 2022.05.17 |