728x90
Visual C++ 6강 MFC SDI 프로그래밍
- 여러 개의 작업윈도우가 떠있는 MDI와는 달리 단지 하나의 작업 윈도우만을 제공하는 프로그램을 SDI 프로그램이라고 한다. 하나의 뷰 윈도우를 가지고 있기 때문에 SDI(Single Document Interface) 프로그램이라고 한다.
- MFC는 윈도우 프로그래밍을 할 수 있도록 winAPI를 기능적으로 구분해서 C++클래스로 작성한 클래스 라이브러리이다.
- MFC SDI프로그램은 메인 프레임 윈도우가 최상위 윈도우이고, 차일드 윈도우로 하나의 뷰(View) 윈도우를 가지고 있다. MFC는 윈도우의 모든 기능을 클래스로 구현해서 제공하고 있다. 여기에서 메인프레임 윈도우를 나타내는 클래스는 CMainFrame이고, 뷰 윈도우를 나타내는 클래스는 CSDIView이다. 그리고 전체 프로그램을 관리하는 클래스가 있는데 이것이 CSDIApp클래스이다.
- 프로그램이 시작하면서 CWinApp클래스로부터 상속받은 응용프로그램 클래스 CSDIApp의 객체가 생성되고, 프로그램을 초기화 할 수 있도록 CSDIApp::InitInstance() 멤버 함수가 호출된다.
- MFC가 제공하는 SDI프로그램의 응용프로그램 프레임워크 기본골격은 다음과 같다.
CWinApp에서 상속받은 응용프로그램 클래스 ☞ CSDIApp
CFrameWnd에서 상속받은 프레임 윈도우 클래스 ☞ CMainFrame
CView에서 상속받은 뷰 클래스 ☞ CSDIView
CDocument에서 상속받은 다큐먼트 클래스 ☞ CSDIDoc - MFC는 메시지 맵(Message Map)이라는 메시지 처리 메커니즘을 사용한다. 윈도우에 메시지가 전달되면, 윈도우 클래스의 멤버함수가 호출된다. 모든 메시지는 메시지를 처리하는 메시지 핸들러(handler)함수가 존재한다. 윈도우 메시지 핸들러 함수가 존재한다.
- MFC에서 사용되는 모든 윈도우는 윈도우 클래스마다 각각 제공되는 Create()함수를 호출해서 윈도우를 생성한다. 컨트롤 클래스도 각기 고유한 Create()함수를 제공하고 있다 CButton, CList, CProgressCtrl 클래스가 그 예이다.
- 다음 표는 대표적인 메시지와 이를 처리하는 메시지 핸들러 함수들이다.
WM_CREATE OnCreate() WM_SIZE OnSize() WM_PAINT OnPaint() WM_CLOSE OnClose()
'컴퓨터과학[2-1] > knou_[2-1]Visual_C' 카테고리의 다른 글
Visual C++ 8강 MFC 프레임 워크 (0) | 2015.01.24 |
---|---|
Visual C++ 7강 MFC SDI 프로그램의 응용 (0) | 2015.01.24 |
Visual C++ 5강 디버깅과 클래스 (0) | 2015.01.24 |
Visual C++ 4강 차일드 윈도우와 버튼 컨트롤 (0) | 2015.01.24 |
Visual C++ 3강 소스코드 살펴보기 (0) | 2015.01.10 |
댓글