JP77550の文書、MSのサイト内から消えてGoogleのキャッシュにしか引っかからなくなってるので、後々の自分の為にメモ。
ユーザーが押下したENTERキーが標準キーボード側のENTERキーなのか、テンキー側の ENTERキーなのかを判断したい場合、
どちらの動作もwParamに仮想キーコードのVK_RETURNが設定されて、WM_KEYDOWNメッセージとWM_KEYUPメッセージが発行される。
メッセージのlParamの24ビットめをチェックする。キーが拡張キーならばビット24は1になり、そうでなければ0になっている。
(これらのメッセージのlParamの内容は、SDK バージョン3.0の「プログラマーズリファレンス Vol.1 概要」と、「プログラマーズ リファレンス Vol.3 メッセージ、構造体、マクロ」のドキュメントに記述されている)
テンキー側にあるキー(ファンクションキーも含めて)は拡張キーになる。
サンプルコード:
case WM_KEYDOWN:
{
if (wParam == VK_RETURN)
{
if (lParam & 0x1000000L)
{
// テンキー側のENTERキー
}
else
{
// 標準キーボード側の ENTER
}
}
} break;
こういう情報って全部は記憶してらんないから、随時調べるのであって、
古いからってサイトから消えてもらっては困るんだけどなぁ。