使用Windows消息查看按钮是否被按住
本文关键字:是否 按钮 Windows 消息 使用 | 更新日期: 2023-09-27 18:20:52
我有一个程序,它使用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*/
}
}
}
按钮可以在任何地方按下,程序仍将处理它们。
问题是,每当用户按下某个按钮时,该按钮的功能就会在短时间内重复很多次。即使这个功能没有那么重,它仍然会导致计算机在几秒钟内冻结或工作缓慢。
如果我知道按钮被按住了,我只需要做一次功能。
窗口信息中是否有标志或其他东西表明按钮被按住?
您可以监听WM_KEYUP事件,然后只执行函数,或者执行一次函数并锁定它,直到获得WM_KEYUP
。