WM_KEYDOWN = &H100

機能
システム以外のキーが押されたときに
キーボードフォーカスを持つウィンドウに送られる
wParam
押されたキーの仮想コード
lParam
リピート数、スキャンコード、拡張キー、コンテキストコード、
直前のキー状態、キー遷移(せんい)状態を示す。

ビット      説明
-----------------------------------------------------------------------------
0〜15       リピート数を示す。この値はユーザーがキーを押しつづけたときに
            リピートされたキーストロークの回数を示す。
16〜23      走査コードを示す。
            この値はOEM(Original Equipment Manufacturer)に依存する。
24          ファンクションキーや数値キーパッドなどの拡張キーかどうかを示す
            拡張キーのとき 1
            それ以外は   0
            NEC PC-9800シリーズ、PC-H98シリーズは常に0
25〜26      未使用
27〜28      Windows内部で使用
29          コンテキストコードを示す。[Alt]キーが押された状態での
            キーが押された場合はこの値は    1
            それ以外は                      0
30          直前のキーの状態を示す。
            メッセージが送られてくる前にキーが押されているとき    0
            離されていたときは                                    1
31          キー遷移の状態を示す。
            キーが離されているとき      1
         押されているとき            0
-----------------------------------------------------------------------------
このメッセージの場合、ビット29の値とビット31の値は両方とも0
戻り値
0を返す
備考
システム以外のキーとは、[Alt]キーが押されていないときに押されたキー
またはウィンドウが入力フォーカスを持つときに押されたキーのこと。

このメッセージはVisual BasicのKeyDownイベントと同じである。

オートリピート機能により、WM_KEYUPメッセージが送られる前に複数の
このメッセージが送られることがある。直前のキー状態(ビット30)は
このメッセージが最初のキー押下によるものか、または繰り返しの押下
によるものかを調べるときに使う。

IBM拡張101キーまたは102キーボードでは、キーボードの主要な部分にある右の
[Alt]キーと右の[Ctrl]キー、数値キーパッドの左側にある[Ins],[Del],[Home],
[End],[Page Up],[Page Down]および各方向キー、さらに数値パッドの上の除算キー
[/]と[Enter]キーがすべて拡張キーになる。この他にもlParamの拡張キーのビット
をサポートするキーボードがある。
参照
WM_CHAR, WM_KEYUP