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

这篇博客详细介绍了Windows编程中键盘和鼠标输入的处理方法。通过键盘消息WM_KEYDOWN、WM_KEYUP等,结合wParam和lParam参数解析虚拟键码。鼠标消息如WM_LBUTTONDOWN、WM_MOUSEMOVE等,利用LOWORD和HIWORD获取坐标信息。文章深入浅出地解析了Windows消息机制如何响应输入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.键盘输入处理


前面说过,windows程序是由消息驱动的,我们对程序的操作也可以被包装成一个消息,投递到程序的消息队列中,窗口过程函数通过对这个消息处理,达到响应输入的目的。

常见的键盘消息有以下几种:

WM_KEYDOWN //键盘按下

WM_KEYUP //键盘松开

WM_SYSKEYDOWN //系统键按下

WM_SYSKEYUP //系统键松开

WM_CHAR //字符消息

在这里,KEYDOWN和KEYUP都是成对发生的,比如要判断一个瞬时输入,那么用KEYDOWN和KEYUP是一样的,如果要判断连续性的按下,那么就需要同时使用KEYDOWN和KEYUP了,但是还有个更加简单的方法,GetMesageTime可以获取消息的相对时间,详情请查阅MSDN

但是,窗口过程函数接受的只是WM_XXX消息,仅仅判断到了键盘有输入,怎么确定是哪个键被按下了呢?

前面说过,窗口过程函数有接受两个参数,wParam和lParam,消息的结构体里面也有这两个参数。按键的信息就存储在这两个参数里面:

wParam参数存储的就是按键的虚拟键码,lParam存储的是按键的相关信息。在windows中,虚拟键码对应键盘上的一个实际按键,”虚拟“也是windows操作系统常用的东东,比如虚拟存储,虚拟设备,这样有什么好处呢?一方面,就是我们在编程的时候,不需要考虑底层的一些硬件信息,只需要调用windows为我们写好的api就可以操作底层的硬件,大大的方便了我们这些程序猿编写程序,另一方面,我们所编写的程序对操作系统而言是“不可信的”,操作系统需要将我们和底层硬件隔离,以免破坏计算机,假如我们这些菜鸟都可以直接操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值