在视中接收鼠标输入:
鼠标消息是我们常需要处理的消息,消息分为:鼠标移动,按钮按下/松开,双击。利用ClassWizard可以轻松的添加这几种消息映射,下面分别讲解每种消息的处理。
WM_MOUSEMOVE对应的函数为OnMouseMove( UINT nFlags, CPoint point ),nFlags表明了当前一些按键的消息,你可以通过“位与”操作进行检测。
MK_CONTROL Ctrl键是否被按下 Set if the CTRL key is down.
MK_LBUTTON 鼠标左键是否被按下 Set if the left mouse button is down.
MK_MBUTTON 鼠标中间键是否被按下 Set if the middle mouse button is down.
MK_RBUTTON 鼠标右键是否被按下 Set if the right mouse button is down.
MK_SHIFT Shift键是否被按下 Set if the SHIFT key is down.
point表示当前鼠标的设备坐标,坐标原点对应视左上角。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)WM_LBUTTONDOWN/WM_RBUTTONDOWN(鼠标左/右键按下)对应的函数为OnLButtonDown/OnRButtonDown( UINT nFlags, CPoint point )参数意义和OnMouseMove相同。
WM_LBUTTONUP/WM_RBUTTONUP(鼠标左/右键松开)对应的函数为OnLButtonUp/OnRButtonUp( UINT nFlags, CPoint point )参数意义和OnMouseMove相同。
WM_LBUTTONDBLCLK/WM_RBUTTONDBLCLK(鼠标左/右键双击)对应的函数为OnLButtonDblClk/OnRButtonDblClk( UINT nFlags, CPoint point )参数意义和OnMouseMove相同。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)下面我用一段伪代码来讲解一下这些消息的用法:
代码的作用是用鼠标拉出一个矩形
global BOOL fDowned;//是否在拉动
global CPoint ptDown;//按下位置
global CPoint ptUp;//松开位置
OnLButtonDown(UINT nFlags, CPoint point)
{
fDowned=TRUE;
ptUp=ptDown=point;
DrawRect();
...
}
OnMouseMove(UINT nFlags, CPoint point)
{
if(fDowned)<