【发布时间】:2013-03-10 16:19:31
【问题描述】:
我有一些技巧来捕捉鼠标触摸标题栏,但是当我将鼠标放在标题栏上时,例程会反复触发。这是例程
protected override void WndProc(ref Message m)
{
if (m.Msg == 0xA0) // WM_NCMOUSEMOVE
{
listBox1.Items.Add("mouse move on title bar");
}
else if (m.Msg == 0x2A2) // WM_NCMOUSELEAVE
{
listBox1.Items.Add("mouse leave from title bar");
}
base.WndProc(ref m);
}
谁能告诉我任何技巧,结果 WndProc 只在鼠标触摸标题栏时触发一次,而不是重复触发。谢谢
【问题讨论】:
-
我不知道 Firing 事件只有一次,但您可以使用 flag 确保鼠标触摸标题栏时只执行一次所需的任务
-
没有 WM_MOUSEENTER 事件吗? (我看到的唯一解决方案是它只触发一次,除了使用@nsconnector 所说的标志))