Window Program
Download
Report
Transcript Window Program
객체지향 프로그래밍 기법
실객체를 표현한 소프트웨어 객체로 프로그램 구성
소프트웨어 객체들의 상호 동작으로 프로그램 수행
실세계
프로그램 세계
사건
실객체
실객체
소프트웨어
객체
메시지
소프트웨어
객체
소프트웨어
객체
실객체
있는 그대로 표현
2장
1
Visual C++
프로그램 구현 - 콘솔 프로그램으로 작성
작업절차
- New
Projects 페이지
Win32 Console
Application선택
-
나머지는
앞절과 동일
Developer
Studio 실행
< 프로젝트 선택 >
2장
2
Visual C++
< Exercise2 수행결과 >
3
Visual C++
2장
MFC 란?
- Microsoft Foundation Class (마이크로 소프트 사의 기반 클래스)
- Visual C++ 과 함께 제공되는 내장 클래스(Library Class)
- Visual C++ 를 사용해 윈도우 프로그램을 간단하게 개발할 수 있
는 유용한 클래스
- 기본 Window 의 형태들은 새로 만들지 않고 MFC 를 상속받아 그
냥 쓰면 된다.
- 프로그래머의 작업시간을 단축시켜줌
4
Visual C++
MFC(Microsoft Foundation Class)
………………………
……………………………….
…………………………….
………………
상속
이미 정의된
클래스들
기본 골격만 갖춘 창
AppWizard
CMainFrame class
CMyView class
CMyDoc class
CMyApp clsss
2장
5
Visual C++
Application Frameworks (AFX)
CFrameWnd
윈도우의 프레임(틀)을 관리
CView
데이터를 보여주는 윈도우
CDocument
데이터를 저장, 처리 (눈에는 안보임)
CWinApp
위의 세 오브젝트를 묶어주고, 프로그램을 구동 시킴 (눈에는 안보임)
6
Visual C++
AFX 클래스의 계층 구조
거의 모든 MFC 클래스의 기반 클래스
CObject
CCmdTarget
커맨드 메세지를 받는 기능
CWinApp
CDocument
CWnd
CFrameWnd
CView
7
프로그램을 구동시키는 기능
데이터를 저장하고 처리하는 기능
윈도우에 관련된 기능 (눈에 보이는 오브젝트)
프로그램 윈도우 프레임(외곽)을 관리하는 기능
데이터를 보여주는 윈도우 관리하는 기능
Visual C++
CFrameWnd
protected/private 멤버
멤버 함수
멤버 변수
CWinApp
CDocument
CView
CMyApp 클래스의 인스턴스 (전역 변수)
워크 스페이스 창
클래스 뷰 페이지
논리적인 단위 요소들에 대한
목록들을 보여 준다.
9
리소스 뷰 페이지
프로젝트에서 정의되는 리소스
목록들을 보여 준다
Visual C++
파일 뷰 페이지
프로젝트에 정의된 파일의
목록들을 보여 준다
ClassWizard
클래스 선택
현재 클래스에서 오버라이딩 가능한 함수 목록
이미 오버라이딩 된 함수 목록에서 선택된 함수를 삭제
이미 오버라이딩 된 함수 편집
현재 클래스에서 이미 오버라이딩 된 함수 목록
10
Visual C++
윈도우 메시지
윈도우 메시지
WM_CREATE
WM_ACTIVATE
WM_PAINT
WM_MOUSEMOVE
WM_COMMAND
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_KEYDOWN
WM_KEYUP
WM_SIZE
WM_MOVE
WM_TIMER
WM_DESTROY
11
발생하는 상황
윈도우가
윈도우가
윈도우가
윈도우의
사용자가
윈도우의
윈도우의
윈도우의
키보드가
키보드가
윈도우의
윈도우가
윈도우에
윈도우가
생성될 때
활성화 되거나 비 활성화 될 때
다시 그려져야 할 필요가 있을 때
위에서 마우스 커서가 움직였을 때
메뉴나 버튼을 눌러 명령을 내렸을 때
위에서 마우스 왼쪽 버튼이 눌렸을 때
위에서 마우스 왼쪽 버튼이 떼어졌을 때
위에서 마우스 왼쪽 버튼이 더블 클릭 됐을 때
눌렸을 때
떼어졌을 때
크기가 변경되었을 때
이동 되었을 때
설정된 타이머의 시간이 다 되었을 때
없어질 때
Visual C++
메시지 큐
윈도우 오퍼레이팅 시스템
메시지
메시지 큐
WM_ACTIVATE
WM_CREATE
WM_ACTIVATE
WM_MOVE
12
프로그램
CWinApp::Run( )
{
switch( )
메시지 핸들러
case :
OnCreate
}
OnActivate
OnMove
Visual C++
Developer Studio 구동
File 메뉴
New항목
2장
13
Visual C++
Step 1 : Application Program type Setting
2장
14
Visual C++
Step 2 : Database Setting
2장
15
Visual C++
Step 3 : OLE Setting
2장
16
Visual C++
Step 4 : 화면 구성 Setting
2장
17
Visual C++
Step 5 : 프로그램 소스 Setting
2장
18
Visual C++
Step 6 : Class name & File Setting
2장
19
Visual C++
프로젝트에 대한 정보 및 설명
2장
20
Visual C++
응용 마법사가 만든 문서 편집기
2장
21
Visual C++
클래스마법사(ClassWizard)사용법
Project
응용마법사를 사용하여 프로토타입을 생성
클래스마법사를 사용하여 마우스의 왼쪽 버턴을 클릭
했을 때, “ Hello! Event-Driven”문자열 출력
2장
22
Visual C++
클래스마법사(ClassWizard)
2장
23
Visual C++
클래스마법사(ClassWizard)
1
2
3
2장
24
Visual C++
클래스마법사(ClassWizard)
2장
25
Visual C++
클래스마법사(ClassWizard)
개별화 되는 작업 내용입력
2장
26
Visual C++
27
Visual C++