我有一个程序,它使用 Windows 消息来了解是否单击了按钮:
IntPtr GetMsg(int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
{
int vkCode = Marshal.ReadInt32(lParam);
if ((Keys)vkCode == Keys.SomeKey)
{
/*Functions*/
}
}
}
这些按钮可以在任何地方按下,程序仍然会处理它们。
问题是,每当用户按住某个按钮时,该按钮执行的功能会在短时间内重复很多次。即使该功能不是那么重 - 它仍然会导致计算机冻结或工作缓慢几秒钟。
如果我知道按钮被按住,我只需执行一次该功能。
Windows 消息中是否有标志或其他内容表明该按钮被按住?