삽이 부서질 때까지 삽질
[MFC] 구조 및 기본 클래스 본문
MFC 구조는 검정 화살표
MFC 기본 클래스는 주황 화살표
구조는 가장 밖에 있는게 프레임 윈도우 또는 메인 윈도우라고 부르며, 클라이언트 부분은 툴바, 뷰, 상태바가 존재한다.
프레임 윈도우와 뷰는 부모 - 자식 관계으로 이루어져 있다.
기본 클래스는 3가지로 이루어져있는데 각각 응용 프로그램 클래스, 프레임 윈도우클래스, 뷰 클래스 이다.
응용 프로그램 클래스 |
프레임 윈도우 생성, 메세지 루프 제공 |
프레임 윈도우 클래스 |
프레임 윈도우 기능 제공, 뷰 생성 |
뷰 클래스 |
뷰 기능 제공 |
첫 사진에 나온 실행 파일의 소스들이다.
SimpleToolbar.CPP 에는 BEGIN_MESSAGE_MAP(클래스 이름, 베이스 클래스 이름) 매크로와 END_MESSAGE_MAP() 매크로 사이에 윈도우 메세지와 메세지 지 핸들러를 연결하기 위한 매크로를 정의한다. (메세지 생성하고 리소스 생성하면 알아서 처리 해주지만...)
그리고 SetRegistryKey(이름) 가 있는데 프로그램 관려 정보가 HKCU\Software\[이름] 위치에 저장이 된다.
프레임 윈도우 객체를 동적 할당하고 프레임 윈도우를 생성한 뒤 윈도우 객체와 연결한다.
이때 메뉴, 아이콘 등 리소스 정보가 필요한데 이걸 LoadFrame 첫번째 인자가 리소스 정보를 제공해주는 역할을 한다.
IDR_MAINFRAME에는 아래와 같이 여러 개의 리소스를 대표하는 ID가 선언 되어 있다.
MainFrm.cpp 에서 처음에 보이는 건 ON_WM_CREATE 와 ON_WM_SETFOCUS 다.
ON_WM_CREATE 는 윈도우가 처음 생성될 때 발생하는 메세지이다.
ON_WM_SETFOCUS는 키보드 메세지를 받을 때 발생한다.
이외에도 프레임 클래스에서 발생하는 메세지들을 여기에 선언한다. (이것도 자동으로 선언이 되더라...)
마지막으로 ChildView.cpp 다.
뷰 클래스는 화면에 데이터를 출력하거나 사용자 입력을 받을 때 사용하는 함수들을 정의한 함수이다.
ON_WM_PAINT 는 WM_PAINT 메세지와 OnPaint 함수를 연결한다.
OnPaint 함수는 WM_PAINT 메세지를 처리한다. 이 함수는 프로그램 뷰를 담당하여 출력을 해준다.
지금까지 기본적인 MFC 구조와 클래스를 알아 보았습니다~
내용이 많이 빠졌겠지만...
덧글로 알려주시면 감사하겠습니다!!
물론 틀린점도 받아요!!
'MFC' 카테고리의 다른 글
[MFC] SDI 간단 분석 (0) | 2016.12.06 |
---|---|
[MFC] 텍스트 파일이 아닌 확장 메타파일 형식으로 저장 (0) | 2016.12.06 |
[MFC] 파일 저장 및 읽기(직렬화) (0) | 2016.12.06 |
[MFC] 메뉴 명령 처리 (0) | 2016.12.02 |
[MFC] 메뉴 생성하기 (0) | 2016.12.01 |