1:客户区鼠标;
鼠标基本分三种:单击,双击,移动
WM_LBUTTONDOWN //客户区中按下鼠标左键
WM_LEUTTONUP //客户区中松开鼠标左键
WM_LBUTTONDBLCLK //客户区中双击鼠标左键
WM_MBUTTONDOWN //客户区中按下鼠标中键
WM_MBUTTONUP //客户区中松开鼠标中键
WM_MBUTTONDBLCLK //客户区中双击鼠标中键
WM_RBUTTONDOWN //客户区中按下鼠标右键
WM_RBUTTONUP //客户区中松开鼠标右键
WM_RBUTTONDBLCLK //客户区中双击鼠标右键
WM_MOUSEACTIVE //客户区中改变鼠标激活状态
WM_MOUSEAMOVE //客户区中移动鼠标
WM_MOUSEWHEEL //客户区中鼠标滚轮滚动
OnLButtonDown(UINT nFlags, CPoint point)
nFlags //是否同时按下非系统键
point //鼠标位置坐标
例:
if (nFlags & MK_SHIFT)
如有必要转换坐标 CDC::DPtoLP(&point);
2:非客户区鼠标;
WM_NCLBUTTONDOWN //非客户区按下鼠标左键
WM_NCLBUTTONUP //非客户区松开鼠标左键
WM_NCLBUTTONBLCLK //非客户区双击鼠标左脚
WM_NCMBUTTONDOWN //非客户区按下鼠标中键
WM_NCMBUTTONUP //非客户区松开鼠标中键
WM_LCMBUTTONBLCLK //非客户区双击鼠标中键
WM_LCRBUTTONDOWN //非客户区按下鼠标右键
WM_LCRBUTTONUP //非客户区松开鼠标右键
WM_LCRBUTTONBLCLK //非客户区双击鼠标右键
WM_MOUSEMOVE //非客户区中移动鼠标
WM_NCHITTEST //非客户区鼠标消息检测,监视鼠标位置
OnNcLButtonDown(UINT nHitTest, CPoint point)
nHitTest //指明鼠标位置属性
point //鼠标位置坐标
例如:
if (nHitTest & HTBOTTOM)
属性说明:
HTBORDER:光标位于无缩放框的窗口边框上。
HTBOTTOM:光标位于窗口底部边框上。
HTBOTTOMLEFT:光标位于窗口左下角边框上。
HTBOTTOMRIGHT:光标位于窗口右下角边框上。
HTCAPTION:光标位于标题栏内。
HTERROR:光标位于窗口背景或窗口间边界(窗口无效范围)上。
HTGROWBOX:光标位于缩放窗。
HTHSCROLL:光标位于水平滚动条内。
HTLEFT:光标位于左边框上。
HTMAXBUTTON:光标位于最大化按钮上。
HTMENU:光标位于菜单区。
HTMINBUTTON:光标位于最小化按钮上。
HTRIGHT:光标位于右边框上。
HTSYSMENU:光标位于系统菜单上。
HTTOP:光标位于上边框上。
HTTOPLEFT:光标位于左上角边框上。
HTTOPRIGHT:光标位于右上角边框上。
HTTRANSPARENT:光标位于另一个窗口覆盖的区域。
HTVSCROLL:光标在垂直滚动条上