由于在 标题栏不触发WM_NCLBUTTONUP事件,网上找了很久,都不知什么原因,希望知道的同志告之小弟。
现在我是用WM_NCMOUSEMOVE代替,由于在标题栏会触发WM_NCLBUTTONDOWN事件,所以在WM_NCLBUTTONDOWN事件里设置被按下的变量 b_MouseDown ,然后在WM_NCMOUSEMOVE 事件里检查 b_MouseDown ,具体如下:
private bool b_MouseDown = false;
WM_NCLBUTTONDOWN = 0x00A1;
WM_NCMOUSEMOVE = 0x00A0;
protected override void WndProc(ref Message m)
...{
switch (m.Msg)
...{
case WM_NCMOUSEMOVE:
if (b_MouseDown)
...{
MessageBox.Show("这里写想在WM_NCLBUTTONUP事件做了事");
b_MouseDown = false;
}
break;
case WM_NCLBUTTONDOWN:
b_MouseDown = true;
break;
}
base.WndProc(ref m);
}