当前位置:编程学习 > C/C++ >>

接收用户输入

 

在视中接收鼠标输入:

鼠标消息是我们常需要处理的消息,消息分为:鼠标移动,按钮按下/松开,双击。利用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)<						
		
	
补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,