이번에 프로젝트를 하면서 키보드 입력 값을 받아서 EditBox 처럼 만들어야 하는 일이 있었다.

처음에 아무 생각없이 그냥 키보드 Input을 처리하듯이 WM_KEYDOWN 메시지를 받아서 처리하려 했었다.

로직을 완성하고 프로그램을 실행 시키는 순간.... 어랏??? ... 그냥 a 라고 생각하고 눌렸는데 A가 나왓다.... 숫자 키는 shift를

눌려도 1, 안눌려도 1이 나왔다.... 흠.... 처음에는 쉬프트에 따른 연산을 따로 해야하는 줄 알았다.

그래서 검색을 해본결과..... 이런..... 키입력을 받으려면.. WM_CHAR를 써야 한다는 것이다.

그냥 WM_KEYDOWN을 쓰면 처음 입력 된 것처럼... 그냥 A, 1 이렇게 나올뿐이고 우리가 흔히 EditBox에 입력되는 형태로 글

자를 출력하려면 WM_CHAR에 들어온 인풋 값을 그대로 배열에 대입해 주면 된다..

간단하지만, 정확히 모르면 헷갈리기 쉬운 메시지.
Posted by 바람처럼..
|