Windows编程之鼠标

原创 2005年03月01日 11:08:00
     发明鼠标的人真了不起,或许是很懒才能发明这种设备吧,:)。PF之……
文章中说鼠标刚开始并不是很重要,人们更喜欢用键盘,其实我也很喜欢用键盘操作,比如打开计算器,我更喜欢用键盘的win+R,然后输入“calc”打开计算器,而不是用鼠标点“开始”->“程序”->“附件”->“计算器”。但是玩CS的时候就不同了。呵呵……

有鼠标是非常好的,但是我们不能一厢情愿的假设客户安装了鼠标,加入客户没有安装鼠标或者说鼠标坏了,当然这可能不经常发生,但是的确有这种可能,所以我们的程序应该考虑到这种情况。

函数fMouse = GetSystemMetrics (SM_MOUSEPRESENT) ;
用来确定是否安装了鼠标,如果安装了,则返回非0值,否则返回0。【Windows 98在没有装鼠标的情况下返回2】。

鼠标中的术语:
 Clicking 按下并放开一个鼠标按键。
   Double-clicking 快速按下并放开鼠标按键两次。
   Dragging 按住鼠标按键并移动鼠标。

鼠标的E文单词是mouse,那么它的复数形式是什么?
或许用mouse devices是一个参考。

x = LOWORD (lParam) ;//鼠标的x坐标
y = HIWORD (lParam) ;//y坐标
确定为双击,则这两次单击必须发生在其相距的实际位置十分接近的状况下(内定范围是一个平均系统字体字元的宽,半个字元的高),并且发生在指定的时间间隔(称为「双击速度」)内.
要想收到双击的消息,必须在RegesterClass的时候在style中包含CS_DBCLCKS识别字。


双击时的消息是:

WM_LBUTTONDOWN

WM_LBUTTONUP

WM_LBUTTONDBLCLK

WM_LBUTTONUP

也就是说双击将首先处理单击消息,然后再处理双击消息。比如单击应用程序图标是“选中”,而双击该图标就是先“选中”,然后“运行”。
命中测试消息WM_NCHITTEST:
此消息优先于所有的显示区域和非显示区域的消息。lParam含有x和y 的屏幕坐标,wParam没有用。

拦截鼠标消息:
case WM_NCHITTEST:
   return (LRESULT) HTNOWHERE ;



windows编程之鼠标消息总结

1 确定鼠标是否存在:fMouse = GetSystemMetrics (SM_MOUSEPRESENT) ; 2 获取鼠标上按键数目:cButtons = GetSystemMetrics (S...
  • zhuhuangtianzi
  • zhuhuangtianzi
  • 2014年04月13日 19:49
  • 2267

【win32】鼠标响应事件

对比于《【mfc】鼠标、键盘响应事件》(点击打开链接),win32的鼠标响应事件更能揭示出窗体程序的本质。鼠标响应事件同样在窗体程序的消息回调函数LRESULT CALLBACK WndProc(HW...
  • yongh701
  • yongh701
  • 2017年02月11日 20:51
  • 2679

win10 ubuntu16 双系统共用蓝牙鼠标

最近给新笔记本电脑装了win10+ubuntu16双系统,发现原来在win10下已经配对的蓝牙鼠标,在ubuntu下配对后,win10就不能用了,需要重新配对才行,反之亦然。 每次切换系统后蓝牙鼠标...
  • 10km
  • 10km
  • 2017年03月10日 18:01
  • 3375

Windows编程基础 第五章 鼠标消息 定时器 菜单

// windows07.cpp : 定义应用程序的入口点。 // #include "stdafx.h" #include "windows07.h" #include "tchar.h" HI...
  • yangxuefeng09
  • yangxuefeng09
  • 2014年09月03日 08:04
  • 724

Windows编程之鼠标划过变形

  • 2013年09月17日 20:10
  • 2KB
  • 下载

Windows编程 DirectInput 鼠标和键盘的输入

版本:VS2015 语言:C++   书的第八章是一些数学的知识,以及一个图形库的创建。数学知识是有必要看一看的,我这里就不做多的介绍了,图形库的话反正你现在的win7+系统上也运行不了,看看就好...
  • u012632851
  • u012632851
  • 2016年09月19日 18:45
  • 2177

windows编程学习笔记(6)键盘与鼠标输入

一.键盘输入处理 前面说过,windows程序是由消息驱动的,我们对程序的操作也可以被包装成一个消息,投递到程序的消息队列中,窗口过程函数通过对这个消息处理,达到响应输入的目的。 常见的键盘消息有...
  • puppet_master
  • puppet_master
  • 2014年10月25日 23:30
  • 817

Windows编程(4)|SDK键盘鼠标消息的简单处理

先看一下键盘按键按下时的消息   鼠标消息   下面是我对键盘和鼠标的一个消息处理过程,这只是消息处理函数部分 //窗口过程函数的实现(消息处理函数) LRESULT CALLBAC...
  • bizhu12
  • bizhu12
  • 2011年08月08日 01:44
  • 4838

Windows编程鼠标按键练习

  • 2011年12月26日 20:05
  • 1.12MB
  • 下载

windows编程太阳升起落下代码

  • 2013年06月03日 11:11
  • 14.07MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows编程之鼠标
举报原因:
原因补充:

(最多只允许输入30个字)