윈도우 일반 공주영상대학 게임과 이 은 순.

Slides:



Advertisements
Similar presentations
Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
Advertisements

윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
제1장 윈도우 프로그래밍 1.1 윈도우 프로그래밍의 개념 1.2 윈도우 프로그램의 기본 구조
제1장 윈도우 프로그래밍 1.1 윈도우 프로그래밍의 개념 1.2 윈도우 프로그램의 기본 구조
Image & Video processing
윤 홍 란 다이알로그(대화상자) 윤 홍 란
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
공통 컨트롤의 종류와 특징을 개관한다. 각종 공통 컨트롤의 사용 방법을 익힌다..
11장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
자료 구조: Chapter 3 (2)구조체, 포인터
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
5장. 참조 타입.
제 3장. C보다 나은 C++ II.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
23장. 구조체와 사용자 정의 자료형 2.
임베디드 실습 # LED, 7’Segment 제어
14장. 포인터와 함수에 대한 이해.
분할 윈도, 다중 뷰… 영상 통신 연구실 권 동 진 발표 일 : 04월 27일.
11장. 1차원 배열.
C#.
13. 연산자 오버로딩.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
어서와 C언어는 처음이지 제14장.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
영상처리 실습 인공지능연구실.
GUI 소켓 애플리케이션 Chapter 08. * 학습목표 윈도우 GUI 애플리케이션의 구조와 동작 원리를 이해
24장. 파일 입출력.
19. 함수 포인터와 void 포인터.
Lesson 2. 기본 데이터형.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
8주차: Strings, Arrays and Pointers
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
Fucntion 요약.
12. 상속 : 고급.
3. 윈도우 핸들 제어.
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
7주차: Functions and Arrays
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
3. 모듈 (5장. 모듈).
구조체(struct)와 공용체(union)
게임과 1학년 Flipping - 파일을 읽어서 출력하는 프로그램
Numerical Analysis Programming using NRs
Chapter 11 구조체.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
엔코더 프로그램 설명 // 쓰레드를 사용하기 때문에 변수와 핸들을 전역변수로 지정 HANDLE hDevice;
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
윈도우 운영체제와 윈도우 응용 프로그램의 특징 SDK 응용 프로그램 MFC 응용 프로그램
13. 포인터와 배열! 함께 이해하기.
MFC 기초 윈도우 응용프로그램 개발 간략한 역사 Microsoft Foundation Classes
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

윈도우 일반 공주영상대학 게임과 이 은 순

메시지 윈도우 - 이벤트 기반 운영체제 공주영상대학 게임과

메시지 메인 루프가 반복되면서 메시지가 들어오는 대로 그때그때 비정기적으로 처리 메시지(message) 응용 프로그램에게 어떤 특정한 종류의 이벤트가 일어났음을 알리는 신호 윈도우즈나 다른 응용프로그램, 또는 사용자로부터 발생 공주영상대학 게임과

이벤트 예 윈도우 이벤트 키보드 이벤트 그리기(Drawing) 이벤트 사용자가 윈도우의 크기를 변경 윈도우즈는 응용 프로그램에게 윈도우의 변경된 크기를 알리는 메시지를 전송한다. 키보드 이벤트 사용자가 키보드를 누르면 키가 눌러졌다는 메시지가 응용 프로그램에 전송된다. 응용 프로그램은 그 정보를 처리해서 (메뉴가 뜬다든가 하는) 적절한 행동을 수행한다. 그리기(Drawing) 이벤트 다른 윈도우가 응용 프로그램의 윈도우를 가렸다가 치워지면서 아래에 깔린 윈도우를 다시 그려야 된다면 다시 칠하라는 메시지가 응용 프로그램에 전송된다. 공주영상대학 게임과

프로그램 표기법(헝가리-찰스 시모니) Prefix Data Type (Base Type) c char by BYTE (unsigned char) n short or int (refers to a number) i int x, y short (used as x-coordinate or y-coordinate) cx, cy short (used as x or y; c stands for count) b BOOL (int) w UINT (unsigned int) or WORD (unsigned word) 공주영상대학 게임과

프로그램 표기법(헝가리-찰스 시모니) Prefix Data Type (Base Type) l LONG(long) dw DWORD (unsigned long) fn function s string sz, str string terminated by 0 byte lp 32-bit long pointer h handle msg message 공주영상대학 게임과

변수 표기법 핸들(handle) 전치사가 나오고 다음에 변수 이름 다른 객체를 가리키는 32비트 정수를 말한다 핸들의 자료형이 32비트가 아닌 다른 것으로 바뀔 경우를 대비한다 전치사가 나오고 다음에 변수 이름 변수 이름에 포함된 단어의 앞 글자는 대문자 예 szName: NULL로 끝나는 문자열 dwHitList: WORD (H와 L이 대문자임을 알 수 있음) lpData: 무언가를 가리키는 32비트 포인터 lpwData: 하나의 WORD를 가리키는 32비트 포인터 g 와 밑줄(_)을 앞에 넣어서 변수가 전역변수임을 나타내기도 한다. 예를 들어 g_lTime 은 LONG 형인 전역 변수이다. 공주영상대학 게임과

함수 표기법 함수 : 단어들 사이에 밑줄 없이 단어 첫 글자를 대문자로 예 WORD IsFull(void); int LoadBitmap(void); BOOL IsRunning(void); 공주영상대학 게임과

타입정의와 상수 새로 정의되는 자료형이나 상수는 모두 대문자 밑줄을 사용하며, 그렇게 엄밀하진 않다. 예 typedef unsigned char UCHAR; typedef int BOOL; #define MAX_BRAINS 100 공주영상대학 게임과

윈도우 프로그램 부분들 Win32 라이브러리 지정 include 파일 사용 WinMain() 함수로 진입점(entry point) 지정 : int PASCAL WinMain(HINSTANCE hInstance, …………) 윈도우즈 클래스 지정(속성 정의) : style, size, icon, cursor….. 윈도우즈 클래스 등록 : RegisterClassEx($winclass) 윈도우 생성 : CreateWindowEx(………………) 윈도우 보이기 : ShowWindow(…………………) 공주영상대학 게임과

이벤트 처리기(event handler) 마련하기 필요에 따라 이벤트 루프 마련하기 이벤트 처리기(event handler) 마련하기 공주영상대학 게임과

윈도우즈 응용 프로그램의 진입점 main() 과 유사 int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow); 함수의 형이 WINAPI로 선언: 함수가 PASCAL 호출 규약을 사용하며, 32비트라는 것을 의미 hinstance : 응용 프로그램 인스턴스의 핸들 hprevinstance는 거의 쓸모가 없는데 이전 인스턴스의 핸들에 사용 lpcmdline이란 인자는 명령행 인자를 가리키는 포인터 ncmdshow : 윈도우즈 응용 프로그램이 초기에 보여지는 방식 공주영상대학 게임과

윈도우 클래스 속성 선언 윈도우 클래스 속성선언을 위한 변수 선언 WNDCLASSEX winclass; // 윈도우즈 클래스 선언 HWND hwnd; // 윈도우 핸들 MSG msg; // 메시지 선언 공주영상대학 게임과

윈도우 클래스 속성 선언 윈도우 클래스 멤버들 초기화 winclass.cbSize = sizeof(WNDCLASSEX); winclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW; winclass.lpfnWndProc = WindowProc; // 메시지처리기의 명칭정의 winclass.cbClsExtra = 0; winclass.cbWndExtra = 0; winclass.hInstance = hInstance; CS_DBLCLKS : 마우스 더블클릭 CS_OWNDC : 윈도우가 DC를 독점적으로 사용하도록 허용 CS_HREDRAW | CS_VREDRAW : 작업영역의 가로/세로가 조정되면 윈도우를 다시 그리도록 함 공주영상대학 게임과

윈도우 클래스 속성 선언 윈도우 클래스 멤버들 초기화(계속) winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); winclass.hCursor = LoadCursor(NULL, IDC_ARROW); winclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH); winclass.lpszMenuName = NULL; winclass.lpszClassName = WINDOW_CLASS_NAME; winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); LoadIcon() LoadCursor() GetStockObject() 공주영상대학 게임과

윈도우 클래스 등록 윈도우 클래스 등록 if (!RegisterClassEx(&winclass)) return 0; 공주영상대학 게임과

윈도우 생성 if (!(hwnd = CreateWindowEx(NULL, WINDOW_CLASS_NAME, //윈도우 클래스 이름 NULL, //윈도우 타이틀바에 쓰여지는 이름 WS_POPUP, //윈도우 스타일 0, // 윈도우가 그려질 X좌표 0, // 윈도우가 그려질 X좌표 GetSystemMetrics(SM_CXSCREEN), //윈도우 너비 GetSystemMetrics(SM_CYSCREEN), //윈도우 높이 NULL, //부모윈도우 NULL, //메뉴핸들 hInstance, // 응용프로그램의 인스턴스 NULL))) // lParam의 인수 return 0; 공주영상대학 게임과

메시지 루프 while(GetMessage(&msg,NULL,0,0)) { ProcessHere(); // 메인 루틴 TranslateMessage(&msg); // 메시지처리하기로 보낸다 DispatchMessage(&msg); } ReleaseObject(); return(msg.wParam); 공주영상대학 게임과

MSG 구조체 typedef struct tagMSG { HWND hwnd; //윈도우 핸들 UINT message; //메시지 내용 WPARAM wParam; //메시지 부가정보 LPARAM lParam; //메시지 부가정보 DWORD time; //메시지 발생시간 POINT pt; //메시지 발생시 마우스 위치 } MSG; 공주영상대학 게임과

공주영상대학 게임과