본문 바로가기

C++ 2D

7. 시간과 입력

SetTimer,KillTimer

 

1. 셋타이머
SetTimer(hWnd,1,500,NULL);

2. 킬타이머
KillTimer(1);


1. SetTimer(hWnd,1,500,NULL);		500ms 에 한번씩 1번 이벤트를 실행
2. KillTimer(1);			1번 이벤트 타이머를 제거

3.	1000 = 1초
	100  = 0.1초
	10   = 0.01초
	1    = 0.001초
    
4. 셋타이머 원형
SetTimer(hWnd,nIDEvent,nElapse,IpfnTimer);

hWnd	:	윈도우 핸들

nIDEvent:	이벤트 아이디(아이디는 중복가능 주의)

nElapse	:	반복할 시간 대입 최대 2147483647값을 넘으면 안된다함.

IpfnTimer:	시간마다 생기는 이벤트가 발생했을때 호출할 함수의 주소를 대입(포인터라함)
		NULL값 넣고 WM_TIMER 로도 사용가능

 

GetTickCount();

 

GetTickCount();

시스템이 시작한 시점부터 이 함수를 호출한 시점까지 흘러간 시간을 알려주는 함수.
1000분의 1초 단위로 알려줌. (1000ms = 1s)
32비트의 한계로 49.7일이 지나면 오버플로가 생긴다함(49.7일을 켜놓을 이유가 있나?)

GetRickCount64();

같은 형식인데 얜 64비트라고 함. 49.7일을 넘길 수 있다는듯.

예전에 했던 srand(time(NULL));
대신 srand(GetTickCount()); 으로 사용 불꽃가능

 

 

 

GetAsyncKeyState(int vKet)

 

1.
GetAsyncKeyState(int vKey);


2.
GetKeyState(int vKey);


같은 일을 하지만 서로 미묘하게 다른 함수들
공통적으로는 키값을 입력받으면 경우에 따라 아래의 값(3.)을 반환함.

1. GetAsyncKeyState(int vKey);

키가 눌렸는지, 언제부터 눌렸는지를 확인할때 사용함
키값이 up과 down을 판단할 수 있다함
비동기로 처리함, 부르면 딴데 안새고 빠릿빠릿해서 여러므로 빠르다고 함.


2. GetKeyState(int vKey);

동기로 처리한다함 메시지 큐를 거치고 리턴해줌.
키를 연속적으로 입력받는게 가능!
키가 눌렸는지, 키의 토글상태가 무엇인지 확인할때 사용한다.



3. 리턴값.

0(0x0000)	: 이전에 누른 적이 없고 호출 시점에도 눌려있지 않은 상태
0x8000		: 이전에 누른 적이 있고 호출 시점에는 눌려있지 않은 상태
0x8001		: 이전에 누른 적이 없고 호출 시점에는 눌려있는 상태
1(0x0001)	: 이전에 누른 적이 있고 호출 시점에는 눌려있는 상태

'C++ 2D' 카테고리의 다른 글

9.애증의 피타고라스(삼각함수)  (0) 2021.06.13
8. 원과 사각형  (0) 2021.06.08
6. 싱글 톤 패턴  (0) 2021.05.31
5. 마우스  (0) 2021.05.28
3.Rect, WM, VK, InvalidateRect(,,)  (0) 2021.05.26