我试图检测单击并仅在单击实际发生后才调用函数。
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
protected override void WndProc(ref Message m) {
//Detect a Click
if (m.Msg == 0x210 && m.WParam.ToInt32() == 513){
lastClick = DateTime.Now;
clickedHappened();
Debug.Print("Click Detected!");
}
base.WndProc(ref m);
}
private void clickedHappened(){
MessageBox.Show("Click Already Happened");
}
我认为WndProc发生在实际点击发生之前。
我想知道是否有办法在不使用计时器的情况下解决这个问题?或sleep(400)
;
我能想出的唯一解决方案是使用计时器,但我想摆脱一些现有的计时器。在WndProc中检测到点击后,似乎实际发生了 200-350 毫秒。