이번에 프로젝트를 하면서 키보드 입력 값을 받아서 EditBox 처럼 만들어야 하는 일이 있었다.
처음에 아무 생각없이 그냥 키보드 Input을 처리하듯이 WM_KEYDOWN 메시지를 받아서 처리하려 했었다.
로직을 완성하고 프로그램을 실행 시키는 순간.... 어랏??? ... 그냥 a 라고 생각하고 눌렸는데 A가 나왓다.... 숫자 키는 shift를
눌려도 1, 안눌려도 1이 나왔다.... 흠.... 처음에는 쉬프트에 따른 연산을 따로 해야하는 줄 알았다.
그래서 검색을 해본결과..... 이런..... 키입력을 받으려면.. WM_CHAR를 써야 한다는 것이다.
그냥 WM_KEYDOWN을 쓰면 처음 입력 된 것처럼... 그냥 A, 1 이렇게 나올뿐이고 우리가 흔히 EditBox에 입력되는 형태로 글
자를 출력하려면 WM_CHAR에 들어온 인풋 값을 그대로 배열에 대입해 주면 된다..
간단하지만, 정확히 모르면 헷갈리기 쉬운 메시지.
'프로그래밍 > 유용한 팁' 카테고리의 다른 글
C++ assert() 함수 사용하기.. (0) | 2011.08.12 |
---|---|
bool 변수 = 변수 ? false : true ; (0) | 2011.08.03 |
DirectShow 웹캠 화면 쉽게 입력받기. (0) | 2011.08.02 |
2010부터 폴더 추가가 바뀌었다!! (0) | 2011.08.01 |
dsShow dxtrans.h 에러 (2) | 2011.08.01 |