Issuu on Google+


Microsoft Foundation Class

객체지향 프로그래밍 1.1 기초적인 이야기 1.2 MFC 의 정의 및 특징

호서대학교 컴퓨터공학


목차  Part 1. 윈도우 프로그래밍의 기본 이해 1.1 기초적인 이야기 1.1.1 Hello World! 1.1.2 윈도우 프로그래밍 모델 1.1.3 메시지 큐의 존재 1.1.4 윈도우 프로그램의 구성

1.2 MFC 의 정의 및 특징

호서대학교 컴퓨터공학

3


1.1 기초적인 이야기 – 1. Hello World  MFC 가 어렵다고 생각되는 이유 ?

– C/C++ 프로그램의 진입점은 main() 함수 로 시작 . – Windows API 의 진입점은 WinMain() 함 수로 시작 . – MFC 프로그래밍은 C 프로그래밍과는 다 르게 main() 함수를 볼 수 없음 . 호서대학교 컴퓨터공학

4


1.1 기초적인 이야기 – 2. 윈도우 프로그래밍 모델

 윈도우의 편이성

– 왜 윈도우를 사용 하나 ? – 사용하기 편해서 – GUI 환경 – 마우스의 자유로운 활용

– 우리는 마우스를 가지고 무엇을 하는가 ? – 클릭 , 더블클릭 – 화면 스크롤을 위한 휠 이용 – 우클릭을 활용한 메뉴 호출 호서대학교 컴퓨터공학

5


1.1 기초적인 이야기 – 2. 윈도우 프로그래밍 모델

 윈도우의 편이성

– 윈도우는 마우스의 동작을 감지하는가 ? – 마우스의 움직임이나 동작을 감지 – 마우스의 동작을 프로그램에 반영

– 키보드는 ? – 일반 문자 입력 – 단축키 이용

– 윈도우 프로그래밍 (MFC/API) 을 시작하는 사람이 라면 이벤트와 메시지 관계가 중요 . 호서대학교 컴퓨터공학

6


1.1 기초적인 이야기 – 2. 윈도우 프로그래밍 모델

 윈도우 프로그래밍의 원리 – 이벤트 – 마우스 ( 클릭 , 더블클릭 , 우클릭 ) – 키보드 ( 타이핑 및 단축키 )

– 메시지 – 이벤트의 결과로 윈도우즈가 발생하는 것 – 윈도우즈 프로그래밍이란 메시지를 처리하는 코드를 구현 하는 것

– 윈도우 프로그래밍의 핵심 원리는 이벤트로 인해서 발생된 메시지를 처리하는 것 호서대학교 컴퓨터공학

7


1.1 기초적인 이야기 – 3. 메시지큐의 존재  메시지 큐의 존재 이벤트 발생 대기

... 시스템 메시지 대기열

응용 프로그램 메시지 대기열 #3

처리

응용 프로그램 메시지 대기열 #2 처리 응용 프로그램 메시지 대기열 #1

호서대학교 컴퓨터공학

8


1.1 기초적인 이야기 – 3. 메시지큐의 존재  메시지큐의 존재 – 부팅이 끝나고 작업표시줄이 나왔을 때 , “ 시 작” 버튼을 클릭해 보면 바로 시작 메뉴가 나 오지 않는 이유는 ? – 부팅 후 컴퓨터가 아직 내 마우스의 움직임에 아직 반응하지 못하기 때문 – 컴퓨터가 부팅과정을 마친 후 시작 버튼을 클 릭한 이벤트에 대한 메시지 반응 호서대학교 컴퓨터공학

9


1.1 기초적인 이야기 – 3. 메시지큐의 존재  메시지큐의 존재 1. 마우스 클릭이라는 이벤트 발생하고 이를 운영체제가 감 지 2. 운영체제는 해당 이벤트에 대한 내용을 확인하고 이른 근거로 메시지를 만든 다음 운영체제 자신이 가지고 있 는 시스템 큐에 메시지 추가 3. 운영체제는 마우스가 클릭된 위치 및 각종 정보를 근거 로 해서 이 메시지가 전달되어야 하는 윈도우를 선택한 후 해당 윈도우의 메시지 큐에 메시지를 넣어주고 시스 템 큐에서는 빼냄 호서대학교 컴퓨터공학

10


1.1 기초적인 이야기 – 3. 메시지큐의 존재  메시지큐의 존재 4. 새로운 메시지가 “작업 관리자”의 메시지 큐에 저장 5. “ 작업 관리자” 프로세스는 루프를 계속 돌면서 메시지 큐에 메시지가 있는지를 검사하다가 새로 운 메시지가 있음을 발견하고 이를 꺼내고 , 메시 지를 인자로 하여금 윈도우 프로시저 함수를 호출 6. “ 작업관리자”의 윈도우 프로시저 함수에서는 마우스 클릭 메시지가 발생했을 때 어떻게 할 것 인지 적절히 처리하고 결과를 반영 호서대학교 컴퓨터공학

11


1.1 기초적인 이야기 – 4. 윈도우 프로그램의 구성

 윈도우 프로그램의 구성 1. 윈도우 어플리케이션이 갖추어야 할 기본 요 소들을 정의한 후 이를 등록하고 윈도우를 생성하는 부분 2. 자신의 메시지 큐를 검사하고 이를 메시지큐 에서 꺼내는 일을 담당하는 부분 3. 발생한 메시지를 어떻게 처리할 것인지를 결 정하는 윈도우 프로시저 부분 호서대학교 컴퓨터공학

12


1.2 MFC 의 정의 및 특징 – 1. MFC 란 ?  MFC(Microsoft Foundation Class) 란 ? 1. 마이크로소프트에서 만든 윈도 API 를 C++ 언어로 둘러싼 기본 클래스 라이브러리의 집 합 2. API 함수를 사용하여 좀더 쉽게 윈도우 프로그 래밍을 하기위해 만들어짐 3. 윈도우에서 기본적으로 제공하는 함수들을 객 체화 시킨것 호서대학교 컴퓨터공학

13


1.2 MFC 의 정의 및 특징 – 2. MFC 의 특징  MFC 의 특징 – 윈도우 응용 프로그램을 작성하는데 드는 수고를 크게 덜어준다 . – 라이브러리 재사용 – AppWizard, ClassWizard, ... – API 를 기반으로 한 SDK 프로그램과 대등한 속 도를 가진다 . – 인라인 함수 – 코드 크기 증가를 최소화한다 . – MFC DLL 호서대학교 컴퓨터공학

14


1.2 MFC 의 정의 및 특징 – 2. MFC 의 특징  MFC 의 특징 – API 함수를 직접 호출할 수 있다 . – ( 예 ) ::ReleaseCapture(); – C 언어로 작성된 윈도우 응용 프로그램을 쉽게 C++ 언어로 바꿀 수 있다 . – SDK 프로그래밍에 대한 기반 지식을 재활용할 수 있다 . – C++ 언어를 이용하여 기존의 C 언어에 비해 API 를 좀더 편하게 사용할 수 있다 . – ( 예 ) 디폴트 인자 호서대학교 컴퓨터공학

15


1.2 MFC 의 정의 및 특징 – 2. MFC 의 구성요소  MFC 의 구성요소

CObject 파생 클래스 : 188 개 MFC 클래스

나머지 : 40 개 (※MFC 6.0 기준 )

매크로와 전역 변수 및 전역 함수

호서대학교 컴퓨터공학

16


1.2 MFC 의 정의 및 특징 – 2. MFC 의 구성요소  MFC 의 계층도

호서대학교 컴퓨터공학

17


1.2 MFC 의 정의 및 특징 – 3. MFC 응용 프로그램의 구조

 MFC 응용프로그램 = 프레임윈도우 + 뷰

호서대학교 컴퓨터공학

18


1.2 MFC 의 정의 및 특징 – 3. MFC 응용 프로그램의 구조

 MFC 응용프로그램 = 프레임윈도우 + 뷰

호서대학교 컴퓨터공학

19


1.2 MFC 의 정의 및 특징 – 4. MFC 프로젝트 생성 방법

 MFC 프로젝트 생성

호서대학교 컴퓨터공학

20


1.2 MFC 의 정의 및 특징 – 4. MFC 프로젝트 생성 방법

 MFC 프로젝트 생성

호서대학교 컴퓨터공학

21


1.2 MFC 의 정의 및 특징 – 4. MFC 프로젝트 생성 방법

 MFC 프로젝트 MFC AppWizard 생성

호서대학교 컴퓨터공학

22


1.2 MFC 의 정의 및 특징 – 4. MFC 프로젝트 생성 방법

 MFC 프로젝트 MFC AppWizard 생성

호서대학교 컴퓨터공학

23


1.2 MFC 의 정의 및 특징 – 4. MFC 프로젝트 생성 방법

 Visual Studio 2008 소개 메뉴 툴바

워크스페이스 편집창

출력창

상태표시줄

호서대학교 컴퓨터공학

24


1.2 MFC 의 정의 및 특징 – 4. MFC 프로젝트 생성 방법

 워크 스페이스

솔루션 탐색기 호서대학교 컴퓨터공학

클래스 뷰

속성 관리자 25


Q&A

Q&A 호서대학교 컴퓨터공학

26


Mfc 제01강 윈도우 프로그래밍 모델(mfc의 기초)