WM_KEYUP メッセージは、押されていた非システムキーが離された場合に、キーボードフォーカスを持つウィンドウにポストされます。非システムキーとは、 [alt] キーが押されていないときに押されたキーのことです。
ウィンドウは、ウィンドウプロシージャを介してこのメッセージを受け取ります。
#define WM_KEYUP 0x0101 nVirtKey = wParam; // 仮想キーコード lKeyData = lParam; // キーデータ
wParam パラメータの値。
非システムキーの仮想キーコードが指定されます。
lParam パラメータの値。
リピートカウント (ユーザーがキーを押し続けたときに繰り返すキー操作の回数) 、スキャンコード、キー変換コード、直前のキー状態、およびコンテキストコードが指定されます。
| ビット | 意味 | 
|---|---|
| 0 〜 15 | 現在のメッセージのリピートカウントが指定されます。これは、ユーザーがキーを押し続けたことにより自動的に繰り返されたキーストロークの回数です。 WM_KEYUP メッセージでは常に 1 になります。 | 
| 16 〜 23 | スキャンコードが指定されます。この値は OEM 依存です。 | 
| 24 | 拡張キーが押されたかどうかが指定されます。拡張キーの場合は 1 が、それ以外のキーでは 0 が指定されます。 | 
| 25 〜 28 | 使用されません。 | 
| 29 | コンテキストコードが格納されます。 WM_KEYUP メッセージでは常に 0 になります。 | 
| 30 | 直前のキー状態が指定されます。 WM_KEYUP メッセージでは常に 1 になります。 | 
| 31 | 変換状態が指定されます。 WM_KEYUP メッセージでは常に 1 になります。 | 
[f10] キーまたは [Alt] キーが離された場合は、 DefWindowProc 関数はトップレベルウィンドウに WM_SYSCOMMAND メッセージを送ります。このときの wParam パラメータには SC_KEYMENU がセットされます。
Windows 95 以降 / Windows NT 3.1 以降