TranslateMessageは、仮想キーメッセージを文字メッセージに変換するWindowsAPI・・・。
キーボードの任意のキーを押すと、それは仮想キーメッセージとしてシステムに伝えられる・・・。
ただ、入力された文字が何なのかはそれだけではわからないので、TranslateMessageで変換する・・・。
といっても、通常はメッセージループの中に入れて、
while (GetMessage(&msg, NULL, 0, 0) > 0){ TranslateMessage(&msg); DispatchMessage(&msg); }
こんな風に呼び出す・・・。
文字メッセージに変換されるとWM_CHARが発生する・・・。
今回はそれが来るかどうか確認する・・・。
こんな風にメッセージループにTranslateMessageを入れておく・・・。
キーを押すと、WM_KEYDOWNが発生し(ここには書いてないけど)、TranslateMessageによって仮想キーメッセージは文字メッセージとなり、WM_CHARを発生させる・・・。
でWM_CHARが来たとき、TextOutで"WM_CHAR"と表示・・・。
キーが押されている状態から離れた状態になったときにWM_KEYUPが発生する・・・。
でこのときRectangleを表示することで、その前に表示された"WM_CHAR"を隠す・・・。
実行すると、
なにもないウィンドウが表示・・・。
キーを押すと、
"WM_CHAR"が出ている・・・。
離すと、
"WM_CHAR"は矩形で隠される・・・。
また、押すと、
矩形の上にWM_CHARが表示・・・。
Sample/TranslateMessage.cpp at master · bg1bgst333/Sample · GitHub