日期:2014-05-17  浏览次数:20763 次

windows消息机制
想要在winform的非客户区,监听鼠标左键按下的消息
网上说的都是WM_NCLBUTTONDOWN,但是试了一下,发现WM_NCLBUTTONDOWN在鼠标左键按下时并不响应,而是在释放左键时才响应
有什么办法可以实现鼠标左键在非客户区按下的消息的响应?
谢谢。

------解决方案--------------------
WM_NCLBUTTONDOWN
0x00A1
当光标在窗口的非客户区并按下鼠标左键时发送此消息

WM_NCLBUTTONUP
0x00A2
当光标在窗口的非客户区并释放鼠标左键时发送此消息

WM_NCLBUTTONDBLCLK
0x00A3
当光标在窗口的非客户区并双击鼠标左键时发送此消息

WM_NCRBUTTONDOWN
0x00A4
当光标在窗口的非客户区并按下鼠标右键时发送此消息

WM_NCRBUTTONUP
0x00A5
当光标在窗口的非客户区并释放鼠标右键时发送此消息

WM_NCRBUTTONDBLCLK
0x00A6
当光标在窗口的非客户区并双击鼠标右键时发送此消息

WM_NCMBUTTONDOWN
0x00A7
当光标在窗口的非客户区并按下鼠标中键时发送此消息

WM_NCMBUTTONUP
0x00A8
当光标在窗口的非客户区并释放鼠标中键时发送此消息

WM_NCMBUTTONDBLCL
0x00A9
当光标在窗口的非客户区并双击鼠标中键时发送此消息
------解决方案--------------------

            switch (m.Msg)
            {
                case 0xA1://WM_NCLBUTTONDOWN
                    {
                        MessageBox.Show("NCLdown");
                        break;
                    }
                case 0x0201://WM_LBUTTONDOWN
                    {
                        MessageBox.Show("CLdown");
                        break;
                    }
            }
            base.WndProc(ref m);//这个放到最后