Windows应用程序对键盘与鼠标的响应总结
来源:互联网 发布:淘宝steam充值卡便宜 编辑:程序博客网 时间:2024/03/29 01:43
键盘:
1、键盘上每一个有意义的键都对应着一个唯一的标识值,称为扫描码。
2、WINDOWS 系统定义的与设备无关的键的标识,称为虚拟码。虚拟码是;一种与设备无关的键盘编码,它的值存放在键盘消息的wParam参数中,最常用的虚拟码;已经在windows.h中定义;
3、键盘消息可以分为两类,即按键消息和字符消息。按键消息又可分为两类:系统按键消息和非系统按键消息。
(系统消息对应与使用Alt键与相关输入键的组合产生的消息,一般由Windows系统内部直接处理应用程序一般不处理,如果应用程序处理了这些系统键消息,就要调用DefWindowPro()函数以便不影响Windows对他们的处理)
按键消息的两个变量wParam和lParam中包含了许多的重要信息,其中wParam参数包含了识别按下的键的虚键码。
在WinMain函数的消息循环中包含了TranslateMessage函数,它的主要功能是把按键消息转化为字符消息,但只有当键盘驱动程序把键盘字符映射成ASCII码后才能产生WM_CHAR消息。
例:
常用的虚拟码:VK_ENTER Enter键 VK_SHIFT Shift键 等;
按键消息:WM_KEYDOWN 非系统 按下 WM_KEYUP 非系统 松开
WM_SYSKEYDOWN 系统 按下 WM_SYSKEYUP 系统 松开
字符消息:WM_CHAR 非系统 字符 WM_DEADCHAR 非系统 死字符
WM_SYSCHAR 系统 字符 WM_SYSDEADCHAR 系统 死字符
鼠标:
1、可以通过LoadCursor函数来加载光标资源
重点:能接收鼠标事件的窗口并不一定要求是活动窗口或者是具有输入焦点的窗口;
在鼠标消息中,参lParam包含了鼠标光标位置,lParam字的低位包含了鼠标光标位置的x坐标值,lParam 字的高位包含了鼠标光标位置的y值。参数wParam内包含了一个指示各种虚键状态的值。
2、对鼠标消息的处理,一般分为两种,一种是要对Shift和Ctrl键进行监测,另一种则不监测;
例如:
1: case WM_LBUTTONDOWN:
if((wParm&MK_CONTROL)&&(wParam & MK_SHIFT)) //Shift 和Ctrl都按下
break;
2: case WM_LBUTTONDOWN:
...
break;
3、若要使窗口函数能接收鼠标双击产生的消息,则在注册窗口类时必须注明该窗口类具有CS_DBLCLKS属性
定义方式如下:
wndclass.style=CS_HREDRAW| CS_VREDRAW|CS_DBLCLKS;
4、对于非用户区鼠标消息,将送往函数DefWindowProc进行处理。
5、调用SetCapture()函数即可实现对鼠标的捕捉,如SetCapture(hWnd);就可以向句柄为hWnd的窗口发送所有的鼠标消息。当调用完后,通过ReleaseCapture()函数释放鼠标,以便其他窗口可以正常地接收鼠标信息。
- Windows应用程序对键盘与鼠标的响应总结
- 实现Windows应用程序对键盘与鼠标的响应
- API键盘与鼠标的响应
- Windows应用程序-键盘鼠标事件
- 窗口对鼠标 键盘 无响应 原因
- 利用钩子函数来捕捉键盘响应的windows应用程序
- 利用钩子函数来捕捉键盘响应的windows应用程序
- 利用钩子函数来捕捉键盘响应的windows应用程序
- 利用钩子函数来捕捉键盘响应的windows应用程序
- 利用钩子函数来捕捉键盘响应的windows应用程序
- 利用钩子函数来捕捉键盘响应的windows应用程序
- 利用钩子函数来捕捉键盘响应的windows应用程序
- MFC对键盘消息的截取与响应
- 模拟键盘或鼠标的响应
- DXUT 学习笔记(3)对键盘鼠标的响应 及 消息处理
- 利用钩子函数来捕捉键盘响应的windows应用程序.(转)
- Windows程序中的键盘与鼠标
- Ubuntu与windows共享键盘鼠标 - Synergy
- 故乡月
- Day 7 Using Exceptions to Perform Error Checking
- CSS
- C和C++编程和学习文档
- C#泛型有什么好处
- Windows应用程序对键盘与鼠标的响应总结
- 使用js读取xml
- 一对懒夫妻的幸福生活
- js添加,移除select 控件的option
- WSDL(Web服务描述语言)详细解析
- xfire开发实例--HelloWorld篇
- 一道字符串解析题
- Axis2 部署模型的六种部署特点提供更好的用户体验
- 使用 Axis2 进行 SOA 开发,第 1 部分: 了解 Axis2 基础