【发布时间】:2013-10-21 05:58:33
【问题描述】:
这里是新手问题,但我找不到任何其他回答它的线程。我只想知道如何使用 WM_KEYDOWN 消息,然后继续使用它的 wParam 参数来检查按下了哪个键。像很多人一样,我正在使用它来尝试让 Windows 因按键重复延迟而停止。
我可以让我的程序响应 WM_KEYDOWN
if (WM_KEYDOWN)
//do something
但我不知道如何访问 wParam 参数。代码
if (WM_KEYDOWN)
if (wParam == 'A')
//do something
好像没用。
这种代码超出了我的深度,但人们说这是解决键重复延迟的最简单方法。我真的不明白什么是消息或它如何具有参数。
【问题讨论】:
-
if (WM_KEYDOWN)中的条件始终为真。当然你的意思是if (msg == WM_KEYDOWN)。检查wParam你的方式对我来说看起来不错。究竟以何种方式,它似乎不起作用?你期望什么结果,你观察到什么结果? -
代码 sn-p 太差了,无法猜测“它不起作用”可能意味着什么。样板代码是
if (HIWORD(lParam) & KF_REPEAT) // It's repeated -
嗯 wParam 总是带有红色下划线,显然是一个未声明的标识符。现在我再次尝试,WM_KEYDOWN 确实似乎总是正确的。