设为首页 加入收藏

TOP

接收用户输入
2014-11-23 20:10:26 来源: 作者: 【 】 浏览:2
Tags:接收 用户 输入

在视中接收鼠标输入:

鼠标消息是我们常需要处理的消息,消息分为:鼠标移动,按钮按下/松开,双击。利用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表示当前鼠标的设备坐标,坐标原点对应视左上角。

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相同。

下面我用一段伪代码来讲解一下这些消息的用法:

代码的作用是用鼠标拉出一个矩形
     
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)
    <						
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MFC中所提供的各种视类介绍 下一篇使用菜单

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: