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++