【发布时间】:2012-01-18 13:53:40
【问题描述】:
我有一个程序使用 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 消息中是否有标志或其他内容表明该按钮被按住?
【问题讨论】:
标签: c# button windows-messages