从0开发游戏引擎---键盘和鼠标消息

键盘消息

Windows有8种不同的键盘消息

键盘输入以消息的形式传递

Windows使用了8种不同的消息来表示各种键盘事件。这看起来可能多了一些,但是(就像我们将要看到的)你的程序忽略掉至少一半的消息是完全可能的。同样,在大多数情况下,你的程序所需要的键盘信息很可能少于这些消息中所编码的信息。处理键盘工作的一部分内容就是要知道哪些消息是重要的,哪些是不必要的。

当用户按下一个键时触发的消息

当用户按下一个键时,Windows 将WM_ KEYDOWN或WM_ SYSKEYDOWN消息放入具有输入焦点的窗口的消息队列中。当该键被释放时,Windows 把WM_ KEYUP或WM_ SYSKEYUP消息放入相应的消息队列中。
在这里插入图片描述

按住键不松开会发送一连串的消息

通常键按下消息和键释放消息是成对出现的。但是如果你按下一个键不放时,则被认为发生了一次连续按键(自动重复)行为,Windows 将发送给窗口过程一连串的WM_ KEYDOWN(或WM SYSKEYDOWN)消息。当此键最终被释放时,Windows 发送给窗口过程一个WM_ KEYUP(或WM_ SYSKEYUP)消息。 像所有的队列消息一-样,击键消息是可被实时追踪。你能通过调用GetMessageTime函数,得到键被按下或释放的相对时间。

WM_CAHR 消息

当TranslateMessage函数翻译WM_ KEYDOWN消息时,发布到具
有键盘焦点的窗口。WM_ CHAR 消息包含按下的键的字符代码。

代码示例

//第二步定义消息处理函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT msgId,WPARAM wParam,LPARAM lParam)
{
   
   
	//第七步  处理消息
	switch (msgId)
	{
   
   
	case WM_CHAR:
		switch(wParam)
		{
   
   
		case 'A':
			MessageBox
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Frank---7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值