윈도우즈 프로그래밍

Similar documents
1장 윈도우 프로그래밍 들어가기

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

윈도우 프로그래밍

MFC 프로그래밍

Microsoft PowerPoint - 04windows.ppt

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - hci2-lecture1.ppt

Microsoft PowerPoint - hci2-lecture1.ppt

PowerPoint 프레젠테이션

04장 메시지 처리 유형

Microsoft PowerPoint - chap03-변수와데이터형.pptx

5장 MFC기반 다지기

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - chap10-함수의활용.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - ch07 - 포인터 pm0415

<312DBED5BACEBCD328B8D3B8AEB8BB2CB8F1C2F7292DBCF6C1A42E687770>

PowerPoint Presentation

4S 1차년도 평가 발표자료

PowerPoint 프레젠테이션

11장 포인터

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

BMP 파일 처리

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - [2009] 02.pptx

쉽게 풀어쓴 C 프로그래밍

Chapter #01 Subject

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - 09-CE-14-리스트콤보박스

API 매뉴얼

강의 개요

슬라이드 1

Microsoft PowerPoint - additional01.ppt [호환 모드]

윈도우즈 프로그래밍

Microsoft PowerPoint - chap01-C언어개요.pptx

Lab 3. 실습문제 (Single linked list)_해답.hwp

KNK_C_05_Pointers_Arrays_structures_summary_v02

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - Chap12-OOP.ppt

Chapter 1. MFC 시작하기

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft PowerPoint - e pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

슬라이드 1

API 매뉴얼

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - lecture2-opengl.ppt

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

윈도우즈 프로그래밍

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - Chapter_04.pptx

2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 중부대학교정보보호학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

윤성우의 열혈 TCP/IP 소켓 프로그래밍

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

Microsoft PowerPoint - a10.ppt [호환 모드]

PowerPoint 프레젠테이션

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

JVM 메모리구조

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - chap12-고급기능.pptx

11장 포인터

금오공대 컴퓨터공학전공 강의자료

쉽게 풀어쓴 C 프로그래밍

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

윈도우즈 프로그래밍

Microsoft PowerPoint - 09-CE-7-선과 도형

JAVA PROGRAMMING 실습 02. 표준 입출력

슬라이드 1

Microsoft PowerPoint - 09-Object Oriented Programming-3.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

예제와 함께 배워보는 OllyDbg사용법

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft Word - hook3.doc

chap 5: Trees

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

IS119_Message.Hooking_이성재.hwp

Microsoft PowerPoint - C++ 5 .pptx

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

OCW_C언어 기초

PowerPoint Presentation

C++ Programming

adfasdfasfdasfasfadf

JAVA PROGRAMMING 실습 08.다형성

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

Microsoft PowerPoint - chap11.ppt [호환 모드]

디지털영상처리3

<C6F7C6AEB6F5B1B3C0E72E687770>

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

Windows 8에서 BioStar 1 설치하기

오버라이딩 (Overriding)

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Visual C++의 개요

PowerPoint 프레젠테이션

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

슬라이드 1

Transcription:

윈도우프로그래밍및실습 002. 윈도우프로그래밍의기본 DB & MINING LAB. Korea University since 2007. 09. 03 updated 2012. 08. 18 last updated 2015. 08. 25 이종욱 eastwest9@korea.ac.kr 1

Purpose of this chapter What is a Window programming How to code the Window programming Simple example Meaning of code 2

윈도우즈역사 1985 년 11 월첫버전발표 미국의마이크로소프트 (Microsoft) 에서 83년 11월에개발시작 그래픽기반운영체제 (GUI) 1987년윈도우즈 1.1 1987년 11월윈도우즈 2.0 윈도우끼리겹칠수있다 (Overlapped) 1990 년 3 월 22 일윈도우 3.0 VISTA 32bit or 64bit Windows 7, 8 (2012 년 8 월 ) 현재 : Window 10 발표됨. 2015 년 8 월

특징및장점 1. 그래픽기반 (GUI) 의운영체제이다 2. 멀티태스킹 3. 메시지구동시스템 4. 장치에독립적 윈도우는디바이스드라이버에의해다양한주변장치들을제어하고관리한다. 장치가바뀌면디바이스드라이버를교체하면된다 5. 일관성이있다 사용자가프로그램에게명령을내리는인터페이스구성이표준화 6. 리소스가분리 코드와윈도우를그리기위한리소스로구분됨

개발툴 API (Application Programming Interface) 운영체제가응용프로그램을위해제공하는함수의집합 SDK (Software Development Kit) API 를사용하여프로그램을개발하는개발툴킷이었으나, 지금은 API 와거의같은뜻으로사용됨 클래스라이브러리 MFC OWL

First (1/4) : 기본틀 // TCHAR 에의미는부가강의자료에서확인한다. 1. 먼저 First_2015 버전.txt 파일을내용을본다! // C 또는 C++ 을콘솔에서작성할때의가장기본적인틀과하단을비교해보자! // 윈도우메시지를처리하는 WndProc( ) 함수의원형 ( 선언 ) // 윈도우클래스선언, 속성선택, 등록, 생성, 화면출력그리고윈도우메시지전달관련코드작성 // 강의자료 8, 9 페이지에있는내용을이곳에작성한다!!! 6

First (2/4) : 메시지처리전용함수 // 윈도우메시지처리를위한 WndProc( ) 함수정의부분 // 실제코드에서는마지막부분에위치! 7

First (3/4) : 윈도우클래스선언, 속성선택, 레지스터등록을위한코드 8

First (4/4) : 윈도우생성, 화면에보여주기, 메시지넘기기코드 9

실습 : VS2015 에서앞의내용수행 강의자료 000_How to use the Visual studio community 2015 -window programming-.pptx 에나와있는내용을잘따라해본 다 First 라는이름의윈도우출력됨! 10

변수명명법 (1/2) 접두사 원래말 의미 cb Count of Bytes 바이트수 dw double word 부호없는 long형정수 h handle 윈도우, 비트맵등의핸들 sz Null Terminated NULL 종료문자열 ch Character 문자형 a Array 배열 w Word 부호없는정수형 i Integer 정수형 p, lp long pointer 포인터형 b Bool 논리형 데이터형 BYTE CHAR WORD DWORD LONG BOOL 식별자 HINSTANCE HWND HDC 의미 unsinged char 형 char 형 unsinged char 형 unsigned long 형 long과동일정수형 True/False 의미인트스턴핸들프로그램자체윈도우핸들 Device Context핸들 TCHAR 에의미는부가강의자료에서확인한다. null-terminated" and sz means "array of characters, null-terminated" 11

변수명명법 (2/2) 접두사 CS CW DT IDI IDC MB 상수 class style 옵션 create window 옵션 draw text 옵션아이콘 (icon) ID 커서 (cursor) ID 메시지상자옵션 접두사 데이터타입 c char 또는 WCHAR 또는 TCHAR by BYTE (unsigned char) n short i int x, y int (x,y 좌표로사용 ) cx, cy int (x, y 길이로사용 ); c는 count b or f BOOL(int); f는 flag 의미 SND 사운드옵션 w WORD (unsigned short) WM window message l LONG (long) WS Window style dw fn DWORD (unsinged long) function s string sz string terminated by 0 character h handle br brush 12

핸들 핸들 (handle) 이란구체적인어떤대상에붙여진번호이며문법적 으로는 32bit(or 64bit) 의정수값 대상끼리의구분을위해서사용 문자열보다는정수값이더효율적 특징 1. 정수값 (32bit), 구분을위한것이므로중복을허용하지않음. 2. 운영체제가발급하며사용자는사용만한다. 3. 같은종류의핸들끼리는절대로중복된값을가지지않는다. 4. H로시작하는접두어를가짐. HWND, HPEN, HDC

메시지처리함수, 전역변수 WndProc() : 윈도우에서발생한메시지를처리하기위한함수 Window Procedure 윈도우프로시저, 윈드프록이라고도읽음 운영체제에의해호출되는응용프로그램내의함수를콜백 (CallBack) 함수라고한다 LRESULT : long 타입으로, Wind32 환경에서메시지처리를마친후 O/S 에게어떤신호를주기위해사용된다. -1, 0, 1, 비트플래그값을가짐. HISNTANCE : 생성된프로그램자체를의미하는정수값 g_hinst : 인스턴스핸들값을전역변수로사용하기위해선언한전역변수 LPCTSTR : LP( 롱포인터 ) 16 비트시절, 24 비트메모리를관리하기위해 long pointer 를사용. 32bit 시스템에서는 32bit 의미. C constant( 상수 ), TSTR t_char 유니코드 + 멀티바이트지원 APIENTRY : 윈도우표준호출규약 _stdcall 를사용한다고알려주는매크로 14

Winmain (1/2) APIENTRY : 윈도우의표준호출규약인 _stdcall 사용한다는의미 인수 hinstance hprevinstance 의미프로그램의인스턴스핸들바로앞에실행된현재프로그램의인스턴스핸들. 없을경우는 NULL이되며 WIN32에서는항상 NULL이다. 호환성을위해서만존재하는인수이므로신경쓰지않아도된다. lpcmdline 명령행으로입력된프로그램인수이다. 도스의 argv 인수에해당한다. ncmdshow 프로그램이실행될형태이며최소화, 보통모양등이전달된다. 이중 hinstance 이외에는실제코드에서거의사용되지않는다. 15

Winmain (2/2) // 전역변수 // 지역변수 많은 API 함수들이 hinstance 값을필요로하는경우가많다. hinstance: 윈도우에서실제생성된프로그램을관리하기위해정수값을발급한다. hinstance 는바로그정수값을의미. 하지만, hinstance 는 main 문의인자로, 지역변수가된다 해결방법 : hinstance 를저장할전역변수를만들어사용한다. // main 문 실제코드에선전역변수로다음과같은코드추가 HINSTANCE g_hinst; lpszclass라는전역문자열정의. 이문자열은윈도우클래스를정의하는데사용된다. 윈도우타이틀바에표시되기도함 16

윈도우클래스속성설정 (1/3) 3 4 8 7 6 5 2 10 9 1 typedef struct tagwndclass { UINT style; // 1 WNDPROC lpfnwndproc; // 2 int cbclsextra; // 3 int cbwndextra; // 4 HINSTANCE hinstance; // 5 HICON hicon; // 6 HCURSOR hcursor; // 7 HBRUSH hbrbackground; // 8 LPCSTR lpszmenuname; // 9 LPCSTR lpszclassname; // 10 } WNDCLASS; 17

윈도우클래스속성설정 (2/3) 윈도우가어떤형태를가질것인지를지정한다. 1 2 3 4 5 6 7 style lpfnwndproc cbclsextra cbwndextra hinstance hicon/hcursor CS_HREDRAW 와 CS_VREDRAW 를 (or) 로연결하여사용. 수직, 수평크기가변할경우윈도우를다시그린다는뜻. 이외에도많음 윈도우메시지처리함수를지정 메시지가발생할때마다이멤버가지정하는함수가호출되며이함수가모든메시지를처리한다 First 예제에서는 WndProc 함수를대입, 이윈도우클래스로부터만들어지는윈도우메시지는 WndProc 함수가처리 특수한목적으로사용하는윈도우예약영역. 사용하지않을때 0 으로지정 현재생성한윈도우클래스를등록하는프로그램의번호이며 WinMain 의인수로전달된 hinstance 값을그대로대입. 운영체제는이윈도우클래스를누가등록했는지기억해두었다가프로그램이종료될때등록취소. 윈도우가사용할마우스아이콘과커서를지정. LoadIcon 함수와 LoadCursor 함수를사용하여아이콘, 커서를읽어와이멤버에대입 윈도우디폴트로제공하며사용자가직접만들수있다. 18

윈도우클래스속성설정 (3/3) 윈도우배경색상지정. 8 9 10 hbrbackground lpszmenuname lpszclassname 윈도우배경색상을채색할브러시를지정하는멤버. GetStockObject 함수를사용하여윈도우에서제공하는기본값사용하거나 COLOR_WINDOW 같은시스템색상을지정할수도있다. 만들어질프로그램이사용할메뉴를지정. 메뉴는프로그램코드에서만드는것이아니라리소스에디터에의해별도로만들어진후링크시에합쳐진다 메뉴를사용하지않을경우 NULL 대입 윈도우클래스이름정의. 여기서지정한이름은 CreateWindow 함수에전달되며 CreateWindow 함수는윈도우클래스에서정의한특성값을참조하여윈도우를만듦. - RegisterClass(& WndClass) 윈도우클래스의이름은보통실행파일이름과일치 lpszclass = TEXT( First ); 윈도우클래스를정의한후 RegisterClass 함수를호출하여윈도우클래스를등록 ATOM RegisterClass( CONST WNDCLASS *lpwndclass); RegisterClass(&WndClass) 생성한 WndClass 구조체번지를넘겨준다. 앞으로지금등록한윈도우를사용하겠다는등록. 19

윈도우실제생성 (CreateWindow) (1/2) 윈도우클래스를등록한후, 윈도우클래스를정의된내용에맞게윈도우를실제생성한다. HWND CreateWindow(1 lpszclassname, 2 lpszwindowname, 3 dwstyle, 4 x, 5 y, 6 nwidth, 7 nheight, 8 hwndparent, 9 hmenu, 10 hinst, 11 lpvparam) 1 2 3 4 5 6 7 8 9 10 11 생성하고자하는윈도우클래스를지정하는문자열이다. 1 lpszclassname 앞에서등록한 WNDCLASS 구조체의 lpszclassname 멤버의이름을여기에넣는다. 2 lpszwindowname 윈도우타이틀바에나타날문자열이다. lpszclass 를쓰면 First 출력 3 dwstyle 만들고자하는윈도우형태를지정. 비트필드값으로수십개를헤아리는매크로상수들을 OR 연산자로연결하여윈도우의다양한형태를지원. WS_OVERLAPPEDWINDOW 스타일이가장무난한윈도우 = 메모장과유사한모습 20

윈도우실제생성 (2/2) 4 ~ 7 8 9 10 X, Y, nwidth, nheight hwndparent hmenu hinst 윈도우의크기와위치를지정하며픽셀단위를사용. X, Y 좌표는메인윈도우의경우는전체화면을기준, 차일드윈도우는부모윈도우의좌상단을기준. 정수값을사용해도되며 CW_USEDEFAULT 를사용하면윈도우가알아서적당한크기와위치를설정. 예제에서는모두디폴트사용. 부모윈도우가있을경우부모윈도우의핸들을지정해준다. M 야프로그램이나팝업윈도우는윈도우끼리수직적인상하관계를가져부자 (parentchild) 관계가성립되는데이관계를지정해주는인수이다. 부모윈도우가없을경우는이값을 NULL 로지정. 윈도우에서사용할메뉴의핸들을지정한다. WndClass 에도메뉴를지정하는멤버가있는데윈도우클래스의메뉴는그윈도우클래스를기반으로하는모든윈도우에서사용. 이인수로지정된메뉴는현재 CreateWindow 함수로만들어지는윈도우에서만사용된다. 만약 WndClass 에서지정한메뉴를사용하려면이인수를 NULL. 다른메뉴를사용하려면이인수에원하는메뉴핸들을주면된다. First 예제의경우 WndClass 에도메뉴가지정되어있지않고 CreateWindow 함수에서도메뉴를지정하지않았으므로메뉴없는프로그램이만들어진다. 윈도우를만드는주체, 즉프로그램의핸들을지정. WinMain 의인수로전달된 hinstance 를대입해주면된다. 11 lpvparam CREATESTRUCT 라는구조체의번지이며특수한목적에사용된다. 보통은 NULL 값을사용한다. 21

윈도우화면출력 BOOL ShowWindow(hWnd, ncmdshow); hwnd 인수는화면으로출력하고자하는윈도우의핸들이며 CreateWindow 함수가리턴한핸들을그대로넘겨주면된다. ncmdshow는윈도우를화면에출력하는방법을지정하며다음과같은매크로상수들이정의되어있다 매크로상수 의미 SW_HIDE 윈도우를숨긴다. SW_MINIMIZE SW_RESTORE 윈도우를최소화하고활성화시키지않는다 윈도우를활성화시킨다 SW_SHOW 윈도우를활성화하여보여준다 SW_SHOWNORMAL 윈도우를활성화하여보여준다 22

메시지루프 (1/2): 메시지를꺼내고, 살짝변경하여 WndProc 에전달 윈도우 : 메시지구동시스템 (Message Driven System) 도스는미리입력된일련의명령들을순서대로실행하는순차적실행방법 윈도우는프로그램의실행이상황 (event OR message) 에따라실행 메시지 사용자나시스템내부적인동작에의해발생된일체의변화에대한정보 BOOL GetMessage( LPMSG lpmsg, HWND hwnd, UINT wmsgfiltermin, UINT wmsgfiltermax); 메시지큐에서메시지를읽어들여첫번째인수가지정하는 MSG 구조체에저장. 함수는읽어들인메시지가 WM_QUIT( 프로그램종료 ) 일경우 False 리턴, 그외는 True. 나머지세개의인수는잘사용되지않는다. BOOL TranslateMessage( CONST MSG *lpmsg); 입력된메시지를상황에맞게가공한다. WM_KEYDOWN과 WM_KEYUP이연속적으로발생할때문자가입력되었다는 WM_CHAR 만드는역할 LONG DispatchMessage( CONST MSG *lpmsg); 시스템메시지큐에서꺼낸메시지를 WndProc 로전달 23

메시지루프 (2/2) typedef struct tagmsg 멤버 의미 { HWND hwnd; UINT message; WPARAM wparam; LPARAM lparam; DWORD time; POINT pt; } MSG; hwnd 메시지를받을윈도우핸들이다. message 어떤종류의메시지인가를나타낸다. 가장중요한값이다. wparam lparam 전달된메시지에대한부가적인정보를가진다. 어떤의미를가지는가는메시지별로다르다. 32 비트값이다. 전달된메시지에대한부가적인정보를가진다. 어떤의미를가지는가는메시지별로다르다. 32 비트값이다. time 메시지가발생한시간이다. pt 메시지가발생했을때의마우스위치이다. 메시지는정수값으로표현되나, 종류가많으므로 window.h 에메시지별로매 크로상수를정의접두어 WM_ 으로시작한다 멤버 의미 WM_QUIT 프로그램을끝낼때발생하는메시지이다. WM_LBUTTONDOWN 마우스의좌측버튼을누를경우발생한다. WM_CHAR 키보드로부터문자가입력될때발생한다 WM_PAINT 화면을다시그려야할필요가있을때발생한다. WM_DESTROY 윈도우가메모리에서파괴될때발생한다 WM_CREATE 윈도우가처음만들어질때발생한다. 24

윈도우프로시저 (1/2) 메시지처리함수 메시지가발생할때프로그램의반응을처리하는일을하며 WinMain 함수와는별도로 WndProc 함수가존재한다. WndProc은 WinMain에서호출하는것이아니라윈도우에의해호출 WinMain내의메시지루프는메시지를메시지처리함수로보내기만한다 WndProc는메시지가들어오면호출되어, 그메시지에맞는내용을처리, 만약메시지처리문장이없으면처리하지않는다. 콜백 (CallBack) 함수 : 운영체제에의해호출되는함수 WndProc 의인수는모두 4 개이며 MSG 구조체의멤버 4 개가동일 3 1 2 4 1) 메시지를받을윈도우의핸들 2) 어떤종류의메시지인가? 3) 메시지에따른부가정보 4) 메시지에따른부가정보 25

윈도우프로시저 (2/2) 26

코드반복이해 First (1/4) : 기본틀 // 윈도우클래스선언, 속성선택, 등록, 생성, 화면출력그리고윈도우메시지전달관련코드작성 // 강의자료 29, 30 페이지에있는내용을이곳에작성한다!!! 27

First (2/4) : 메시지처리전용함수 28

First (3/4) : 윈도우클래스선언, 속성선택, 레지스터등록을위한코드 29

First (4/4) : 윈도우생성, 화면에보여주기, 메시지넘기기코드 30

2-3. 다양한변형 P.49~53 직접수업중에해본다. 배경색바꾸기 : WndClass.hbrBackground 커서바꾸기 : WndClass.hCursor 윈도우의타이틀바꾸기 : CreatWindow( ) 2번째인자 윈도우스타일 : CreatWindow( ) 3번째인자 WS_OVERLAPPEDWINDOW 위코드에서 WS_OVERLAPPEDWINDOW 는다음과같이정의된매크로상수 #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX WS_MAXIMIZEBOX ) 3번째인자를 WS_CAPTION WS_SYSMENU 또는 WS_OVERLAPPEDWINDOW WS_VSCROLL 실습제출!!! 31