키보드에서 A 키를 눌렀다가 뗐다고 했을 때 발생하는 메시지는 순서대로
WM_KEYDOWN, WM_CHAR, WM_KEYUP 세 가지이다.
이 중 WM_CHAR 메시지는 사용자에 의해 발생하는 메시지가 아니다.
WM_CHAR 메시지는 WM_KEYDOWN 에 의해 추가로 발생하는 메시지이며 메시지 루프에서 인위적으로 생성된다.
TranslateMessage 함수는 전달된 메시지가 WM_KEYDOWN 인지와 눌러진 키가 문자키인지 검사해 보고 조건이 맞을 경우 WM_CHAR 메시지를 추가로 발생시킨다.
문자 입력이 아닐 경우는 아무일도 하지 않으며 이 메시지는 DispatchMessage 함수에 의해 WndProc 으로 보내진다.
메시지 루프의 TranslateMessage 함수는 오로지 키보드로부터 문자키 입력 메시지인 WM_CHAR 를 만들어내기 위해 존재한다