【笨嘴拙舌WINDOWS】键盘消息,鼠标消息
2013-09-12 11:22
363 查看
键盘消息
Windows系统无论何时只有一个窗口(可能是子窗口,也就是控件)能获得焦点。
焦点窗口通过windows消息来响应人的键盘操作,与键盘相关的常用消息罗列如下:
WM_KEYDOWN 按下键
WM_KEYUP 松开键
WM_SYSKEYDOWN 按下系统键(Alt)
WM_SYSKEYUP 松开系统键
WM_CHAR 按下松开后WINDOWS产生的字符消息 (A B C D 。。。)
WM_SYSCHAR 按下松开后WINDOWS产生的系统字符消息 (Home End PageUp PageDown 。。。)
人操作键盘后,键盘的电路板会打开特定的电路,经过键盘驱动程序,发送给windows操作系统,然后由系统产生计算机能理解的人的操作行为,操作系统会在Wparam和Lparam中附加人在操作时附带的信息,对于键盘消息其附带信息解释如下
“Windows为每一个应用程序保持了一个消息队列,在翻译键盘驱动消息为WINDOWS消息之后,操作系统先将消息发送到Windows的“系统消息队列”,然后才放入应用消息队列”
鼠标消息
对于鼠标消息其附带信息解释如下
“WM_NCHITTEST消息优先于其他鼠标消息,当鼠标移动,或者被按下键,就会发送该消息,如果鼠标没有被捕获,就将消息发送给鼠标下的窗口,否则发送给捕获窗口(使用SetCapture(hwnd)捕获,ReleaseCapture释放)”
Windows系统无论何时只有一个窗口(可能是子窗口,也就是控件)能获得焦点。
焦点窗口通过windows消息来响应人的键盘操作,与键盘相关的常用消息罗列如下:
WM_KEYDOWN 按下键
WM_KEYUP 松开键
WM_SYSKEYDOWN 按下系统键(Alt)
WM_SYSKEYUP 松开系统键
WM_CHAR 按下松开后WINDOWS产生的字符消息 (A B C D 。。。)
WM_SYSCHAR 按下松开后WINDOWS产生的系统字符消息 (Home End PageUp PageDown 。。。)
人操作键盘后,键盘的电路板会打开特定的电路,经过键盘驱动程序,发送给windows操作系统,然后由系统产生计算机能理解的人的操作行为,操作系统会在Wparam和Lparam中附加人在操作时附带的信息,对于键盘消息其附带信息解释如下
WParam | LParam | |
WM_KEYDOWN | 虚拟键码 | 这个32位整形参数的每一位均赋予一定的意义: 0-15 指定当前消息重复的次数。如果按键足够长,会发送多个消息。然而,重复次数不进行累加。 16-23 指定扫描码。该值取决于OEM。 24 通常为0 25-28 保留,未使用。 29 是否按下了Alt,如果是为1,否则为0 31 指定转换状态。对于按下消息,该值总是0.松开消息,该值为1 |
WM_KEYUP | 虚拟键码 | 同上 |
WM_SYSKEYDOWN | 虚拟键码 | 同上 |
WM_SYSKEYUP | 虚拟键码 | 同上 |
WM_CHAR | 字符(Ascii或者Unicode) | 同上 |
WM_SYSCHAR | 字符(Ascii或者Unicode) | 同上 |
鼠标消息
对于鼠标消息其附带信息解释如下
意义 | Wparam | Lparam | |
客户区对应的点击 | |||
WM_LBUTTONDOWN | 按下左键 | 指示鼠标键及Shift和Ctrl的状态 MK_LBUTTON MK_MBUTTON MK_RBUTTON MK_SHIFT 按下Shift键 MK_CONTROL 按下Ctrl键 | 低16位:鼠标在客户坐标下的X值 高16位:鼠标在客户坐标下的Y值 |
WM_LBUTTONUP | 释放左键 | ||
WM_LBUTTONDBLCLK | 双击左键 | ||
WM_MBUTTONDOWN | 按下中键 | ||
WM_MBUTTONUP | 释放中键 | ||
WM_MBUTTONDBLCLK | 双击中键 | ||
WM_RBUTTONDOWN | 按下右键 | ||
WM_RBUTTONUP | 释放右键 | ||
WM_RBUTTONDBLCLK | 双击右键 | ||
非客户区对应的点击 | |||
WM_NCLBUTTONDOWN | Hittest表示鼠标在窗口的位置,该值是windows处理WM_NCHITTEST消息完毕后的返回结果: HTBORDER In the border of a window that does not have a sizing border HTBOTTOM In the lower horizontal border of a window HTBOTTOMLEFT In the lower-left corner of a window border HTBOTTOMRIGHT In the lower-right corner of a window border HTCAPTION In a title bar HTCLIENT In a client area HTERROR On the screen background or on a dividing line between windows (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error) HTGROWBOX In a size box (same as HTSIZE) HTHSCROLL In a horizontal scroll bar HTLEFT In the left border of a window HTMENU In a menu HTNOWHERE On the screen background or on a dividing line between windows HTREDUCE In a Minimize button HTRIGHT In the right border of a window HTSIZE In a size box (same as HTGROWBOX) HTSYSMENU In a System menu or in a Close button in a child window HTTOP In the upper horizontal border of a window HTTOPLEFT In the upper-left corner of a window border HTTOPRIGHT In the upper right corner of a window border HTTRANSPARENT In a window currently covered by another window HTVSCROLL In the vertical scroll bar HTZOOM In a Maximize button | 低16位:鼠标在屏幕坐标下的X值 高16位:鼠标在屏幕坐标下的Y值 | |
WM_NCLBUTTONUP | |||
WM_NCLBUTTONDBLCLK | |||
WM_NCMBUTTONDOWN | |||
WM_NCMBUTTONUP | |||
WM_NCMBUTTONDBLCLK | |||
WM_NCRBUTTONDOWN | |||
WM_NCRBUTTONUP | |||
WM_NCRBUTTONDBLCLK | |||
WM_NCHITTEST | 非客户区命中测试 | 未使用 | 低16位:鼠标在屏幕坐标下的X值 高16位:鼠标在屏幕坐标下的Y值 |
相关文章推荐
- windows的鼠标、键盘消息(阅windows核心编程笔记)
- Windows - Hook键盘和鼠标消息
- 利用windows消息机制,截获特定应用程序里鼠标、键盘的消息事件
- 通过监听Windows消息实现控件的键盘和鼠标事件路由
- Windows应用程序-键盘鼠标事件
- Windows 7 最终定型的键盘快捷键和鼠标动作
- WM_PAINT、鼠标和键盘消息
- Windows中如何获取键盘和鼠标处于空闲状态的时间
- Windows中如何获取键盘和鼠标处于空闲状态的时间
- vc鼠标消息与键盘消息
- Windows编程 DirectInput 鼠标和键盘的输入
- DirectX11 With Windows SDK--05 键盘和鼠标输入
- Hook 简单的实例--拦截鼠标和键盘消息(一)
- (键盘,鼠标)按键消息大全.......
- 【紧急消息】Windows系统最新漏洞 ->高危险ANI鼠标指针漏洞非官方免疫补丁【来者必看】
- Windows程序中的键盘与鼠标
- windows下模拟鼠标点击和键盘输入
- Node监听鼠标键盘事件,定时发消息小程序,解决robotjs不支持输入汉字问题!
- Hook 简单的实例--拦截鼠标和键盘消息(一)