《Windows程序设计》读书笔记------------->>鼠标基础和显示区域鼠标消息<<
来源:互联网 发布:四元数姿态解算python 编辑:程序博客网 时间:2024/06/10 21:21
计算机法真的很快,我2年前的电脑现在就已经不怎么行了,连一个杀毒软件都算大型。。。虽然 Charles Petzold说,鼠标不是必需的。不过现在看来,没有鼠标的电脑是没有办法想象的。可能一个程序不知此键盘没有什么人会抱怨,不过不支持鼠标就是天大的罪过了。毕竟,鼠标的出现让电脑易用性大幅度提高,而计算机的普及才是真正推动计算机发展的动力吧。。。。不然MONEY哪里来呀。。
所以,在事实上,检测鼠标是否存在的意义并不是很大,不过既然有这个函数,那就记录把:
cButtons = GetSystemMetrics (SM_CMOUSEBUTTONS) ; //检测鼠标按键数
fSwap=GetSystemMetrics (SM_SWAPBUTTON) ; //检测是否反键
除了检测外,还可以制定鼠标的图标,在建立窗口的时候可以指定:
显示区域鼠标消息
和其他的消息相同,鼠标消息也是从消息循环中取得的,它们的消息有:
键
按下
释放
按下(双键)
左
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
中
WM_MBUTTONDOWN
WM_MBUTTONUP
WM_MBUTTONDBLCLK
右
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_RBUTTONDBLCLK
使用方法也和其他的相同,其中,鼠标的坐标由lParam传递
y = HIWORD (lParam) ;
同时,可以通过位与(这个。。。我没学好,忘记叫什么了)的方式获得是否在点击的同时按下了SHIFT等按键:
MK_LBUTTON
按下左键
MK_MBUTTON
按下中键
MK_RBUTTON
按下右键
MK_SHIFT
按下Shift键
MK_CONTROL
按下Ctrl键
例如,如果收到了WM_LBUTTONDOWN消息,而且值
wparam & MK_SHIFT
是TRUE(非0),您就知道当左键按下时也按下了Shift键。
处理双键的时候,需要在窗口样式中指定支持:
既然知道了具体的怎么实现,那么就写一个例子吧,书上的例子除了用到了鼠标消息外还有其他的一些知识。我比较懒,就直接写了个单单关于鼠标消息的例子了:)
其他部分都是自动生成的,就贴出消息处理那部分好了,主要要提前定义变量就是了。
x=LOWORD(lParam);
y=HIWORD(lParam);
count++;
InvalidateRect(hWnd,NULL,0);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
MoveToEx(hdc,p.x,p.y,NULL);
if(count==1)MoveToEx(hdc,x,y,0);
LineTo(hdc,x,y);
p.x=x;
p.y=y;
EndPaint(hWnd, &ps);
break;
- 《Windows程序设计》读书笔记------------->>鼠标基础和显示区域鼠标消息<<
- windows程序设计:键盘和鼠标
- windows程序设计:键盘和鼠标
- windows程序设计(14):鼠标消息详解
- windows程序设计--鼠标消息---程序击中测试
- windows程序设计之鼠标之客户区鼠标消息
- 《Windows程序设计》读书笔记------------->>矩形、区域和剪裁<<
- 添加鼠标移出区域消息
- Windows程序设计之键盘和鼠标
- Windows程序设计 -鼠标
- 《Windows程序设计》之鼠标
- Windows程序设计--鼠标
- Windows程序设计-鼠标
- 鼠标悬浮显示消息
- Windows - Hook键盘和鼠标消息
- windows鼠标消息
- windows鼠标消息
- windows主要鼠标消息
- Object Slice(对象切割),很令人头晕的东西!
- 减少装箱(Boxing)和拆箱(Unboxing)操作(感觉有用,抄过来的)
- Cisco Switching Mode Discussion(五种交换模式辨析)
- 验证交换机STP选举过程
- 信息增益的概念
- 《Windows程序设计》读书笔记------------->>鼠标基础和显示区域鼠标消息<<
- C#文件处理
- 网页配色表[html版]
- 我看《Soldier》
- 英语999句
- AJAX+JSP实现基于WEB的文件上传的进度控制,作者:刘作晨
- 初学NHibernate1.2.0.4000注意事项
- 用ASP.NET加密Cookie数据
- Tomcat虚拟目录设置