我目前正在尝试从我自己的 InputBox的WM_KEYDOWN和WM_CHAR消息中获取键盘输入。
这是我用于基本输入的代码,它适用于字符:
if(msg.message == WM_KEYDOWN)
{
keyHandled = false;
//handle other keys here, e.g. VK_LEFT
}
else if(msg.message == WM_CHAR && !keyHandled)
{
keyHandled = true;
gui->UpdateInput(msg.wParam);
}
如果被按下的键也是触发WM_CHAR消息的键,则间隔与通常的输入框中一样。
但是,如果它是像VK_LEFT这样的键,它会不断收到WM_KEYDOWN消息,不会有任何延迟。
有什么方法可以让我以相同的间隔接收所有键,还是我必须实现一个计时器来处理消息之间的延迟?我还查看了 msdn 上的WM_KEYDOWN 消息,但我找不到与间隔相关的任何内容。