我有一些捕获鼠标触摸标题栏的技巧,但是当我将鼠标放在标题栏上时常规触发。这是常规
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 只有当鼠标触摸标题栏而不是重复触发时才会触发一次。感谢
答案 0 :(得分:2)
你在寻找这个吗?我正在使用旗帜控制向列表框中添加项目。
private bool insideTitleBar = false;
private bool outsideTitleBar = false;
protected override void WndProc(ref Message m)
{
if (m.Msg == 0xA0) // WM_NCMOUSEMOVE
{
if(!insideTitleBar)
{
listBox1.Items.Add("mouse move on title bar");
insideTitleBar = true;
outsideTitleBar = false;
}
}
else if (m.Msg == 0x2A2) // WM_NCMOUSELEAVE
{
if(!outsideTitleBar)
{
listBox1.Items.Add("mouse leave from title bar");
outsideTitleBar = true;
insideTitleBar = false;
}
}
base.WndProc(ref m);
}