Computer Graphics 윈도우 프로그래밍 김 창 헌김 창 헌. Computer Graphics 2 윈도우 시스템  윈도우  스크린 위에서 독립적으로 움직일 수 있는 사각형 영역  윈도우 시스템  유저와 어플리케이션간의 그래픽 스크린을 통한 인터페이스 를.

Slides:



Advertisements
Similar presentations
지도교수 : 박진식 교수님 조 원 : 홍승기, 이병용, 백승준, 조근용, 조동현, 한정협, 이상하.
Advertisements

수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
Computer Graphics 1 윈도우 프로그래밍 실습 II 김 창 헌김 창 헌.
Page 1 Android Programming November 04 / 2009 S/W Junhyuk Jang.
임베디드 모바일 프로그래밍 1 3. 첫 번째 어플리케이션 작성 텍스트 ‘Hello BREW ^^’ 를 출력하는 프로그램 작성하기 (1) App. 프로젝트 - 시작 프로젝트를 작성하기 위하여 MS-Visual C++ 를 실행시킨다. [File  New] 를 선택하고, New.
5장5장5장5장 개요 폼 개체 다중폼 개요 폼 개체 다중폼 다중폼. 2 학습목표 폼 개체를 학습한다. 다중폼에 대하여 학습한다.
미디어 프로그래밍 II 소개.
2013학년도 3-1 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
컴퓨터 공학 설계 및 실험 I MFC programming
1 비주얼 베이직 소개와 개발 환경 구축 비주얼 베이직 프로그래밍 환경을 구축하자!.
졸업 프로젝트 중간보고서 12조 Spot Browser.
목차 Ⅰ. 과제 추진 배경 Ⅱ. 현상 분석 Ⅲ . 과제 추진 활동 및 성과 Ⅳ. 기대효과 Ⅴ. 향후 추진 계획.
2009년 IT인재개발원 [연수생 모집요강]
윈도우 프로그래밍 실습 김 창 헌.
Web Project 작업3: Design기획 Article 토론 Group Project 토론
안 보여 줄끼가? 소프트웨어 프로젝트 1 – 제안서 발표 피바다 (A6)조 발표자 : 조기수.
T A B L E 작성자 : 이 재 학.
CH2 OrCAD Capture CIS.
Lab 6 Guide: 교재 14장 DLL 예제. Regular DLL 만들기 - 암시적 연결 ( 쪽) 명시적 연결 ( 쪽)
제1장 C#의 기초 1.1 .NET Framwork 1.2 .NET Environment 1.3 C# 소개.
Lecture 2 MFC and Application Frameworks
고해상도 잉크제트 프린터 사용자 매뉴얼 베스트마킹 Best Marking
기초C언어 제1주 강의 소개, C언어 개요, Eclipse 사용 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원
오목게임 W32 로봇시스템제어(하) GROUP 7 노성동, 하선웅, 김관준
1. C 언어의 이해와 컴파일러 설치.
윤 홍 란 MFC 기초 윤 홍 란
GNS3의 특징과 사용법 VMware Workstation 문찬웅 & 최성민.
Install & Simulation VLSI 시스템 설계
1장 Visual Basic 2010 시작 1.1 프로그램에 대한 기초 1.2 Visual Basic 버전
Toad for SQL Server 제품 소개서 – 프로넷소프트㈜.
소프트웨어 공학 (Software Engineering)
최 연식 ( ) EDMS를 활용한 EKP 구축 전략 2002년 09월 04일 성우시스템 주식회사 김 정훈 ( ) 최 연식 ( )
Visual Studio 2008 버전별비교 및 제품개요
Kasimov C언어 세미나 1st.
인스톨쉴드9 데브스튜디오 사용 매뉴얼 (VB6에서 개발후 배포프로그램 만들기)
Hello World Bot Framework
Computer Science & Engineering
1 C 언어의 이해와 컴파일러 설치 프로그래밍 환경을 구축하자!.
Network Socket Programming
Microsoft Visual C++ 제 1편 입문편 5장. 샘플 프로그램의 사용자화
Visual C++ Programming
MFC UI for TS Analyzer 서울시립대학교 컴퓨터통계학과 최 용 진.
Android 개발환경 설치 및 Hello World
Computer Architecture
영상처리 시작하기 & 영상처리 프로그램 만들기
openGL Project 결과보고서 야구 시구 시뮬레이션
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
날짜: 팀명: TEAM-SIX 발표자: 이기영
객체 지향 프로그래밍.
OpenGL Project 조민정 장선례.
Platform Builder 기본 사용법
Computer Graphics OpenGL 설치 및 설정
OpenCV 설치 및 구성 OpenCV
강의 소개, 자료구조의 개념, SW 개발과 자료구조
김 정 석 Web Programming 김 정 석
Appendix A 구조적 시스템 개발 방법론.
복습(1) 문제 문제해결절차(알고리즘) C프로그램 scanf(“%d”, &kuk) ; scanf(“%d”, &eng) ;
소프트웨어 형상관리: 목차 변경 및 형상관리의 기초 개념 형상항목 확인 및 버전관리 변경관리 감사 및 감사보고 99_11
비주얼 프로그래밍(2분반) 강의노트 2분반 = 월/목.
Remote Control Plus - 졸업 프로젝트 배문희.
OpenGL Project.
LOGOTYPE 춤추는 풍선 팀장 : 이준호 팀원 : 장원진.
ASP 기초개념 ASP란? ActiveX 서버 컴포넌트.
세일즈의 원칙과 기술.
OPENGL project 구성원 : 김수민,남현우 OPENGL을 이용한 당구(3구) 구현하기.
Information Security - Sniffing 실습.
1장 Visual Basic 2010 시작 1.1 프로그램에 대한 기초 1.2 Visual Basic 버전
컴퓨터 계측 및 실습 C++ 기초 영남대학교 기계공학부.
원도우 네트워크 프로그래밍 (TCP/IP 소켓 프로그래밍)
실시간 음성 채팅 서비스 (Voice Chatting Programe)
Presentation transcript:

Computer Graphics 윈도우 프로그래밍 김 창 헌김 창 헌

Computer Graphics 2 윈도우 시스템  윈도우  스크린 위에서 독립적으로 움직일 수 있는 사각형 영역  윈도우 시스템  유저와 어플리케이션간의 그래픽 스크린을 통한 인터페이스 를 담당하는 소프트웨어  윈도우 어플리케이션을 디스플레이에 표시하고, 유저의 조작 ( 키보드, 마우스 ) 을 어플리케이션에 반영  어플리케이션을 위한 라이브러리 제공  폰트, 이미지 등 데이타 규약 및 실제 데이터 제공  유저인터페이스 외관, 사용법의 규약 제공

Computer Graphics 3 윈도우 시스템 구조 어플리케이션 Display device, Keyboard, Pointing device(mouse) etc. 디스플레이를 위한 장치 비의존적인 소프트웨어 자원 할당, 어플리케이션 간 통신, 하위 layer 할당 기본 윈도우 시스템 그래픽스 라이브러리 하드웨어 유저 인터페이스를 만들기 위해 사용되는 기능 유저 인터페이스 툴킷

Computer Graphics 4 GUI 와 윈도우 시스템 어플리케이션 윈도우시스템 오퍼레이팅 시스템 툴킷 어플리케이션 프로그램 UNIX OSMS-DOS Windows X 윈도우 X View Motif Intrinsics

Computer Graphics 5 윈도우 운영체제의 장점  그래픽 유저 인터페이스 (GUI)  스크린 영역을 유용하게 사용  시각적으로 풍부한 환경 제공  정형화된 그래픽과 문자  일관된 유저 인터페이스  하나의 윈도우용 프로그램을 사용할 줄 알면 다른 것도 그대로 사용  프로그래머 관점  윈도우에 내장된 루틴을 이용  장치 독립적인 프로그램  프로그램 작성시 프린터, 마우스, 키보드, 사운드 카드,CD-ROM 드 라이브등의 장치 사용이 자유로움

Computer Graphics 6 윈도우 프로그래밍  윈도우가 지원하는 550 개 이상의 함수 호출  Windows SDK 의 “windows.h” 에 정의되어 있음  윈도우 프로그램은 윈도우와 동적 연결  프로그램 내의 함수의 호출은 동적 연결 라이브러리의 시작 번지 로의 연결  윈도우의 동적 연결 라이브러리  Kernel : 메모리 관리, 프로그램 관리, 스케쥴 관리  User : 유저 인터페이스, 윈도우화 관리  GDI : 그래픽 처리

Computer Graphics 7 윈도우 프로그래밍 ( 계속 )  메시지 구동 아키텍춰  윈도우는 프로그램에 메시지를 보냄  즉, 윈도우 프로시져 ( 프로그램 또는 DLL 함수 ) 호출  ( 예 ) 윈도우 크기 변경  윈도우가 프로그램에 크기 변경 메시지 전달  프로그램이 윈도우 조정  비디오 디스플레이에 그림 그리기 예  윈도우 생성  윈도우 핸들 필요  디바이스 핸들 필요  윈도우로 가는 메시지 받기  메시지 처리  윈도우즈 프로시져

Computer Graphics 8 컴퓨터 그래픽 프로그래밍  컴퓨터에서 그림, 도표, 영상 등의 그래픽을 표현하기 위한 방법과 알고리즘, 즉, CG 를 컴퓨터 언어를 통해 구 현하거나 응용하는 프로그램을 작성하는 행위 그래픽 에디터, 3D 툴영상을 얻기 위한 그래픽스 툴 프로그램 CG 작품 프로그램영상을 보여주는 전용 프로그램 프랙탈도형이 중시되는 수학용 프로그램 2D, 3D 그래픽 라이브러리기본작도를 위한 함수 프로그램 게임엔진, 3D 엔진 게임에서 CG 를 표현하기 위한 기본함수를 위한 프로그램

Computer Graphics 9 Visual C++ 의 개요  전통적인 C/C++ 개발 과정에 통합된 윈도우 중심의 개 발 툴과 비주얼한 사용자 인터페이스 중심의 패러다임 을 결합한 개발 툴  구성  개발환경도구 + MFC( 클래스 라이브러리 )  일반 윈도우 응용 프로그램, 클라이언트 / 서버, 인터넷, 데이터베이스 등 다양한 응용 프로그램 개발이 가능

Computer Graphics 10 Visual C++ 의 특징  Visual C 윈도우와 인터넷 플랫폼에 알맞은 어플리케이 션을 개발하기 위한 객체 지향적인 프로그램 개발도구  작고 수행속도가 빠른 실행파일을 만드는 향상된 컴파 일러 제공  컴파일러의 COM(Component Object Model) 을 지원하여 COM 기반 어플리케이션을 쉽게 만듦  자동화된 프로그래밍을 제공하여 대부분의 코드는 Visual C++ 가 만들어 주고 프로그래머는 꼭 필요한 부분 에 원하는 기능을 추가하여 작성하므로 빠른 어플리케 이션 작성이 가능

Computer Graphics 11 Visual C++ 의 구성  개발자 스튜디오  프로젝트 워크스페이스 윈도우  어플리케이션 위저드  리소스 에디터  클래스 위저드  C/C++ 컴파일러  리소스 컴파일러  Just-in-time 디버거

Computer Graphics 12 Visual C++ 의 구성 ( 계속 )  개발자 스튜디오  프로그램 개발과 관련된 모든 작업을 수행할 수 있는 통합개발 환경  프로그램 생성과 갱신을 관리하기 위해 프로젝트 파일을 사용  프로젝트 : 윈도우 프로그램을 만들기 위해 컴파일되고, 링크되고, 바운드 될 소스 파일들에 대한 정보를 모아 관리하는 파일  프로젝트 워크스페이스 윈도우  응용 프로그램의 프로젝트에 포함된 클래스, 리소스, 소스 코 드 파일 등을 일목요연하게 살펴볼 수 있도록 여러 속성 시트 형태로 구성된 윈도우  ClassView, ResourceView, FileView, InfoView 로 구성

Computer Graphics 13 Visual C++ 의 구성 ( 계속 )  어플리케이션 위저드  대화상자를 통해 응용 프로그램의 특성을 선택하여 윈도우 응용 프로그램의 기본 작업 골격 (Application Framework) 을 만들어 주는 코드 생성기  리소스 에디터  응용 프로그램에서 사용하는 화면에 보여주는 여러 리소스를 생성, 수정하는 에디터  리소스 객체들을 디자인하고 이를 실제 코딩상의 객체로 연결 시켜 주기 위하여 윈도우 메시지 프로시저에 처리루틴 만들어 줌

Computer Graphics 14 Visual C++ 의 구성 ( 계속 )  클래스 위저드  프로젝트에서 사용하는 클래스를 관리하고, 자원 에디터에 서 생성한 리소스와 클래스의 멤버 함수 또는 데이터 멤버를 연결시키는 역할  C/C++ 컴파일러  소스 프로그램의 확장자에 따라 확장자가 C 이면 C 언어로, 확 장자가 CPP 이면 C++ 언어로 컴파일  헤더 파일에서 변경된 부분과 관련된 부분만을 컴파일하는 Minimal Rebuild 방법을 사용함으로 컴파일 속도 향상

Computer Graphics 15 Visual C++ 의 구성 ( 계속 )  리소스 컴파일러  리소스들이 별도로 컴파일 되어 실행 파일과 연결됨  컴파일 모드  자원 에디터로부터 생성된 자원 스크립트 파일 (RC) 을 이진 RES 파일로 컴파일  바인드 모드  RES 파일을 실행 파일과 합병  Just-in-time 디버거  프로그램 실행 중에 에러가 발생하면 바로 그 시간 (Just-in- time) 에 디버거가 실행되어, 에러를 발생시킨 위치에 중지점 (breakpoint) 를 설정하고 디버깅 작업을 수행

Computer Graphics 16 MFC 라이브러리  MFC(Microsoft Foundation Class)  윈도우 하에서 응용 프로그램을 만드는 골격을 지원하 는 C++ 클래스들의 모임  윈도우가 제공하는 Win32 API 함수들을 체계적으로 통 합한 클래스  API 중 중요하고 많이 사용되는 구성요소만을 클래스화

Computer Graphics 17 MFC 의 장점  객체지향적이고 윈도우에 대한 High-level Interface 를 제공  응용 프로그램의 소스 코드를 바로 수정하지 않고, MFC 의 클 래스를 상속받아 새로운 클래스를 만들고, 필요한 멤버함수를 오버라이딩  응용 프로그램 설계 시 노력 절감  GUI 요소를 만드는 것보다 데이터를 다루는 코드에 노력 집중 하게 함  프로그래밍 툴 (AppWizard, ClassWizard, Component Gallery) 을 사용할 수 있고, 객체 지향 프로그래밍과 이벤트 처리 방식 프로그래밍 방식에 따라 쉽게 프로그램이 가능

Computer Graphics 18 Visual C++ 어플리케이션 생성과정 Developer Studio (AppWizard, ClassWizard 포함 ) C++ 컴파일러 윈도우 런 타임 클래스 라이브러리 파일 OBJ 파일 링커 실행 가능한 프로그램 (exe) 클래스 라이브러리 프로젝트 정의 (DEF) 파일 윈도우 라이브러리 와 런 타임 라이브러리 프로젝트 소스파일 (CPP,H) 메뉴, 비트맵, 아이콘 등 표준 리소스 리소스 스크립트 파일 (RC) 리소스 컴파일러 ( 컴파일 모드 ) 리소스 파일 (RES) 리소스 컴파일러 ( 바인드 모드 )

Computer Graphics 19 윈도우 프로그래밍 과제물  도형 모양과 칼라 선택하여 도형 그리기  마우스를 클릭한 곳에 지정된 모양과 색깔의 도형 그리기

Computer Graphics 20 과제물 요구사항  내용  제공하는 코드를 참조하여, 그려질 도형과 칼라를 추가  기본 요구사항  삼각형, 타원, 다각형, 부채꼴, etc.. 등의 도형을 추가할 수 있 어야 함  Black, Red, Green, Blue 이외의 색상을 지정할 수 있어야 함

Computer Graphics 21 과제물 추가 구현 사항  도형을 그룹화 해서 새로운 도형을 만듦  하트, 별, 꽃, 나비, 벌 등  수학 함수를 이용한 Field of “Flower”  마우스를 클릭한 지점에 다양한 모양의 꽃을 그려 줌  꽃잎의 표현은 수학 함수를 이용.  꽃밭은 여러 가지의 꽃이 존재하여야 함.

Computer Graphics 22 꽃잎 만드는 루틴  포트란 소스. PROGRAM SPAT CALL START(40,0) CALL SPIRO(12,7,5) STOP END SUBROUTINE SPIRO(A,B,D) INTEGER A,B,D,AMB PI=ACOS(-1,0) AMB=A-B THETA=0.0 THINC=PI*O.O2 N=B/ICF(A,B) NUM=N * 100 CALL MOVETO(FLOAT(AMB+D),0.0) DO 101 I=1,NUM THETA=THETA* THINC PHI=THETA*FLOAT(AMB)/FLOAT(B) X=FLOAT(AMB)*COS(THETA)+FLOAT(D)*COS(PHI) Y=FLOAT(AMB)*SIN(THETA)+FLOAT(D)*SIN(PHI) CALL LINETO(X,Y) END FUNCTION ICF(II,JJ) I=II J=JJ M=MOD(I,J) IF(M.NE. 0) THEN I=J J=M GOTO 99 ENDIF ICF=J RETURN END 왼쪽 코드 실행 결과

Computer Graphics 23 과제물 제출 및 평가 기준  제출물  실행파일, 보고서  자신이 구현한 부분의 소스 코드 포함, 문제 접근방법 및 알고 리즘 설명  평가기준  기본 요구사항의 구현  독창성  제출기한 준수

Computer Graphics 24 Visulal C++ 시작하기 시작 메뉴에 있는 아이콘을 클릭한다.

Computer Graphics 25 Visual C++ 개발 Tool 아이콘을 클릭하면 아래와 같은 프로그램 개발 도구가 화면에 나타난다.

Computer Graphics 26 Visual C++ 개발도구 구성 메뉴 바 Project Workspace window File Edit Window Output Window

Computer Graphics 27 윈도우 어플리케이션 개발 과정 1. AppWizard 를 이용하여 윈도우 틀 (framework) 형성 2. Visual design 단계 3. 코드 작성 단계 4. 컴파일 및 링크 ( 실행 파일 생성 )

Computer Graphics AppWizard 를 이용하여 윈도우 틀 (framework) 형성

Computer Graphics Visual design step  리소스 편집기를 이용하여 사용자 인터페이스를 구성하는 오브젝트 생성  눈에 보이는 부분 설계 프로그램의 모양을 만듬. 비주얼 C++ 에 내장된 기 능을 사용해서 여러가지 개체를 만듦.( 푸쉬버튼, 스 크롤 바, 라디오 버튼 등 )

Computer Graphics 코드 작성 단계 ( code-writing step)  ClassWizard 를 이용하여 사용자 인터페이스 오브젝트에 대한 메시지 처리 코드 생성  혹은 에디터에 직접 코드 작성 눈에 보이지 않는 부분의 설계 - 코드와 리소스의 연결

Computer Graphics Application source code 컴파일 및 링크 ( 실행파일 생성 )

Computer Graphics 32 윈도우즈 프로그램 예제 1. 기본 윈도우 틀 만들기 2. 대화상자 (Dialog box) 만들기 3. 그래픽 프로그램  도형 모양과 색깔 선택하여 도형 그리기.

Computer Graphics 33 윈도우즈 프로그래밍 예제 (I)  기본 윈도우 틀 만들기 File 의 New 메뉴 를 선택한다.

Computer Graphics 34 AppWizard 를 이용하여 기본 윈도우 틀 만들기 아무 기능도 수행하지 않는 골격 프로그램 Step1: “my” 라는 이름 의 프로젝트 생성 & 골 격 코드 작성 1) File 메뉴의 New 항목 2) MFC AppWizard 선택 3) 프로젝트명 입력 4) OK 버튼 클릭

Computer Graphics 어플리케이션 특성 선택 Single document : 하나의 다큐 먼트를 갖는 어플리케이션 Multiple documentation : 각각 의 윈도우를 갖는 여러 개의 다 큐먼트를 작업할 수 있는 어플 리케이션 Dialog based : 다이얼로그 박 스가 나타나는 어플리케이션

Computer Graphics 데이터베이스 지원옵션 None Header files only : 데이터베 이스 지원하는 AfxDb.h 헤더 파일을 포함하는 어플리케이 션 생성. Database view without file support : 데이터베이스를 지원 하는 어플리케이션은 생성하 나 파일을 지원하지는 않음. Database view with file support : 데이터베이스와 파일 지원하는 어플리케이션

Computer Graphics OLE 지원 옵션 None Container : OLE 컨테이너 어플리케이션 생성. Mini-server : 단독적으로 실행될 수 없으며 단지 포 함 객체만 생성하는 어플 리케이션 Full-server : 단독적으로 실행될 수 있으며, 포함 연 결 객체도 생성하는 어플 리케이션 Both container and server : OLE 컨테이너와 서버를 지 원하는 어플리케이션 생성

Computer Graphics 사용자 인터페이스 옵션 Docking toolbar : 이동가능한 툴바를 만듬. Initial status bar : 윈도우 하단 에 상태바를 만듬 Printing and print preview : 인 쇄와 관련된 메뉴 설정 Context-sensitive Help : 구문인 식 도움말 제공하는데 사용되 는 도움말 파일 생성. 3D controls : 입체적인 형태로 리소스를 이용 MAPI : 편지보내기와 관련된 메뉴 & 명령코드 Windows Socket : TCP/IP 네트 워크상에서 통신할 수 있는 어 플리케이션 생성

Computer Graphics 생성파일 내용옵션 결정 Yes, please : 소스파일 에 주석문 추가 No, thank you : 주석문 추가하지 않음. As a shared DLL : 공유 DLL 사용 As a statically linked library : 정적 링크 라이 브러리

Computer Graphics 생성된 클래스 명 및 파일명 지정 생성된 클래스들의 이 름과 구현 파일명을 보여 줌. New Project Information 다이얼로 그 박스가 출력.

Computer Graphics AppWizard 를 이용한 기본 윈도우 틀 생성 결과