WM_KEYDOWN、WM_KEYUPがメッセージを受け取るタイミングについて質問いたします。
イベント関数にて上キーが押されたらフラグをTrue、上キーが離されたらフラグをfalse
にするようにしたいのですが、うまくいきません。上キーが押し続けられている間はず
っとTrueで、離されたらfalseになることを期待しているのですが。。。
いろいろ試した結果、どうやら上キーが押された瞬間にWM_KEYDOWNだけでなくWM_KEYUP
まで呼ばれているようです。
なぜでしょうか? ちなみにソースは以下です。すみません、教えてください。
LRESULT CALLBACK MsgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch (msg){
case WM_KEYDOWN: // 何かキーが押された
{
switch (wParam)
{
case VK_UP:
g_up = true;
break;
default:
break;
}
}
case WM_KEYUP:
{
switch (wParam)
{
case VK_UP:
g_up = false;
break;
default:
break;
}
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}
> case WM_KEYDOWN:
> case WM_KEYUP:
これらのcase節自身のbreak;が無いようですが。
nさん
回答ありがとうございます。
解決いたしました。