분류 전체보기(599)
-
GetKeyState, GetAsyncKeyState 차이
개요WM_KEYDOWN은 키가 눌러질 때 보내는 메세지.키가 눌러지고 있다고 전달되는 것이 아니다. (계속 누르고 있는 경우 반복되어서 입력되는 상태)이런한 처리를 하려면 키보드 메시지를 입력 받는 것이 아니라직접 키의 상태를 조사하여 적용해야한다. SHORT GetKeyState(int vVirKey);SHORT GetAnsyncState(int vKey); 조사하고자하는 가상키를 인수로 전달한다.일반 키일 경우 눌러져 있다면 MSB 비트는 1, 아니면 0.Caps Lock 같은 토글키는 켜져있을 경우 LSB가 1, 아니면 0함수의 리턴값과 0x8000과 &연산의 결과가 0인가 아닌가를 살피면리턴값이 부호있는 값이므로 음수이면 키가 눌러진것으로 판단한다. 두 함수의 차이키 상태를 조사하는 시점이 다르다..
2015.04.15 -
고정폭 폰트, 가변폭 폰트
개요폰트 중 '체'로 표현된 폰트들은 고정폭 폰트이다.그 외는 가변폭 폰트. 가변폭 폰트 : 굴림, 바탕, 궁서 등고정폭 폰트 : 굴림체, 바탕체, 궁서체 등 차이고정폭 폰트 - 글자들의 간격이 종류와 모양에 관계 없이 항상 일정한 것. 가변폭 폰트- 글자의 종류에 따라 간격이 달라질 수 있다.
2015.04.15 -
WinApi 정복 6장 (그래픽)
1. DC의 정보수정GDI 오브젝트GDI 오브젝트는 그래픽 출력에 사용되는 도구들을말한다.펜, 브러시, 비트맵, 폰트 등등이 모두 GDI 오브젝트이다.사용자는 그래픽을 출력하기 전에 DC에 원하는 오브젝트를 선택해주고그래픽을 다른 모양으로 변경할 수 있다. GDI 오브젝트핸들 타입설명디폴트펜HPEN선을 그을 때 사용된다.검정색의 가는 선브러시HBRUSH면을 채울 때 사용된다.흰색폰트HFONT문자 출력에 사용되는 글꼴시스템 글꼴비트맵HBITMAP비트맵 이미지선택되지 않음팔레트HPALETTE팔레트선택되지 않음영역HRGN영역선택되지 않음 속성 변경스톡 오브젝트윈도우즈가 기본적으로 제공해주는 GDI 오브젝트를 말한다.생성과 소멸에 직접 관여할 필요가 없다. 아래 함수에서 핸들만 얻어 사용하면 된다. 1HGDIO..
2015.04.14 -
WinApi 정복 5장 (리소스)
1. 리소스리소스의 분리프로그램 - 코드와 데이터로 구성 ; 데이터는 처리 대상, 코드는 데이터 처리 수단.비트맵, 아이콘, 메뉴, 문자열 등등 프로그램의 논리와 무관한 모든 것들이 데이터이다. 코드와 무관한 데이터들을 리소스라고 하며 메뉴, 비트맵, 엑셀레이터, 문자열, 아이콘, 커서 등이 있다. 윈도우즈 - 코드와 리소스가 분리.도스 - 이미지, 비트맵 작업에 엄청난 시간이 들어감. 리소스의 장점- 디자이너와 프로그래머가 분담하여 작업하기 편리하다.- 리소스를 수정하더라도 프로그램을 일일이 다시 컴파일 하지 않아도 된다.- 재사용성- 이식성 2. 메뉴리소스 작성 WM_COMMAND 프로그램 실행중에 사용자가 메뉴 항목을 선택하면 WM_COMMAND 메시지가 발생한다.wParam의 하위 워드로 전달되므..
2015.04.14 -
WinApi 정복 2장 (WinMain)
1. WinMain헤더파일다른 헤더가 필요하지 않고 windows.h만 포함시키면 거의 해결된다. 시작점기존 프로그램의 main함수가 아니라 WinMain이 시작점이다. 시작 함수 원형1int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) cs1int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) cs 인수의미hInstance프로그램의 인스턴스 핸들hPrevInstance바로 앞에 실행된 현재 프로그램의 인스턴스 핸들. 없을 경우는 NULL이 되며 WIN32에서..
2015.04.14 -
winmain 구성 그림그려보기
1. 서론기존의 winmain 구성에서 교수님이 말씀하시길init, update, render, release 4개를 항상 구현해주는게 좋다고 하셨다.게임을 구현할때 함수 단위로 쪼개서 편리하게 구현할 수 있다. 2. 그림 그려보기keynote 환경에서 직접 그린 그림이다.(물론 옥스포드 노트에 손으로 먼저 그려봤다.)정의, 등록, 윈도우 생성을 하고윈도우를 보여주기전에 init를 실행한다.init 내부에서 대부분 초기에 필요한 값들을 지정해준다.윈도우를 보여주고 메세지 루프로 들어간다. 콜백함수 내에서 update, render를 통해주기적으로 값을 업데이트하고 화면에 그려주는 역할을 한다. 릴리즈는 프로그래머가 수동으로 정리해줘야 할 것들을 해제해준다. 3. 정리 코드 12345678910111213..
2015.04.11