WinAPI

KeyManager

로만주 2023. 6. 16. 23:20

▶ KeyManager

경우의 수

1. 키가 한번만 누른 경우

2. 키가 올라 간 경우

3. 키가 내려간 상태에서 유지되는 지

4. 토글키

키 조합으로 조건 체크해야 하므로 bool 배열로 값을 체크할 경우 메모리 낭비가 심할 수 있으므로 비트셋을 이용해 설계.

◆ 비트셋

STL의 한 종류이다.

여러 개의 비트가 모여서 하나의 집합을 형성 하는 것이다.

이때 0이면 채워지지않은 것, 1이면 채워진 것이다.

 

GetAsyncKeyState

- 어떤 키가 입력 된건지 체크 / 프로그램에서 키를 입력받고 싶을 때 사용하는 API 공용함수 

- 기본적으로 메시지 큐에 있는 키의 정보를 확인한다.
- 키가 눌린 시점을 체크하기 위해 &(AND) 연산을 사용해서 확인한다.

- 비트 단위로 AND 연산을 한다.
- 둘 다 1일 때만 결과가 1이고 / 아니라면 결과가 0

0x00000: 이전에 누른 적이 없고 호출 시점에서 안눌린 상태

0x00001: 이전에 누르 적이 있고 호출 시점에서 안눌린 상태

0x80000: 이전에 누른 적이 없고 호출 시점에서 눌린 상태

0x80001: 이전에 누른 적이 있고 호출 시점에서 눌린 상태

 

'WinAPI' 카테고리의 다른 글

해시테이블  (0) 2023.06.20
슈팅게임, 탄환관리  (0) 2023.06.20
객체 지향 4대 요소, 객체지향 5대 설계원칙, 가상함수  (0) 2023.06.15
Random, DesignPattern:Singleton  (0) 2023.06.14
매크로 상수/함수, 한정자  (0) 2023.06.13