有关directinput的问题
我刚学directx,接触到键盘编程,遇到如下问题。真心求解答
void Game_Run(HWND hwnd)
{
if(!d3ddev) return;
char keys[256];
dinputdev->GetDeviceState(sizeof(keys),(LPVOID)&keys);
if(keys[DIK_ESCAPE] & 0x80)
PostMessage(hwnd,WM_DESTROY,0,0);
if(keys[DIK_LEFT] & 0x80)
MessageBox(hwnd,"left key is pressed","test",MB_OK);
if(keys[DIK_RIGHT] & 0x80)
MessageBox(hwnd,"right key is pressed","test",MB_OK);
if(keys[DIK_UP] & 0x80)
MessageBox(hwnd,"up key is pressed","test",MB_OK);
if(keys[DIK_DOWN] & 0x80)
MessageBox(hwnd,"down key is pressed","test",MB_OK);
}
winmain中消息循环是这样的
MSG message;
while(!gameover)
{
if(PeekMessage(&message,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
Game_Run(window);
}
Game_End(window);
return message.wParam;
问题是,我运行后,一按方向键,点确定就弹出程序,不应该这样吧?不是应该继续运行才对吗?