当前位置: 首页 > wzjs >正文

凯里做网站短视频seo排名系统

凯里做网站,短视频seo排名系统,im聊天软件开发,网站qq客服后台书籍:《Visual C 2017从入门到精通》的2.4.2 MFC应用程序类型 环境:visual studio 2022 内容:【例2.40】通过按键消息显示用户按键的键值 说明:以下内容大部分来自腾讯元宝 GetKeyState() 和 GetAsyncKeyState() 是 Windows AP…

书籍:《Visual C++ 2017从入门到精通》的2.4.2 MFC应用程序类型

环境:visual studio 2022

内容:【例2.40】通过按键消息显示用户按键的键值

说明:以下内容大部分来自腾讯元宝

GetKeyState() 和 GetAsyncKeyState() 是 Windows API 中用于检测按键状态的常用函数,其核心差异如下:


1. 工作机制

  • GetKeyState()
    基于 ​消息队列 获取按键状态,仅反映 ​最后一次键盘消息处理时的按键状态。例如,在 WM_KEYDOWN 消息处理函数中调用时,它返回生成该消息时的按键状态。

    适用场景:需要在消息处理逻辑中同步获取按键状态(如响应快捷键)。
  • GetAsyncKeyState()
    直接查询 ​硬件硬件中断 实时获取按键状态,不受消息队列影响。无论程序是否处于消息处理阶段,调用时立即返回当前按键状态。

    适用场景:需要实时检测按键(如游戏循环、后台监控)。

2. 返回值结构

  • GetKeyState()
    返回 SHORT 类型(16位),​最高位(第15位)​ 表示按键是否被按下(1=按下,0=抬起),​最低位(第0位)​ 表示按键是否被触发(如 Caps Lock 灯状态)。

    判断按键按下
    if (GetKeyState(VK_CONTROL) & 0x8000)  // 最高位为1表示按下
  • GetAsyncKeyState()
    返回 SHORT 类型,​最高位 表示当前按键是否被按下,​最低位 表示自上次调用后是否被触发过(1=触发过)。

    判断按键按下
    if (GetAsyncKeyState(VK_SPACE) & 0x8000)  // 最高位为1表示按下

3. 使用限制与性能

  • GetKeyState()

    • 只能在消息处理函数中使用,否则无法获取有效状态。
    • 性能较高,适合频繁调用(如每帧检测)。
    • 潜在陷阱:若在循环中直接使用(如 while(GetKeyState(...))),可能导致死循环。
  • GetAsyncKeyState()

    • 无消息队列依赖可在任意位置调用
    • 性能较低,频繁调用可能影响性能。
    • 物理按键检测:不受键盘映射影响(如 VK_LBUTTON 始终检测鼠标左键)。

4. 典型场景对比

场景推荐函数示例代码
响应快捷键(如 Ctrl+S)GetKeyState()if (GetKeyState(VK_CONTROL) & 0x8000 && nChar == 'S')
游戏循环实时检测按键GetAsyncKeyState()if (GetAsyncKeyState(VK_SPACE) & 0x8000)
检测物理按键状态(如外接键盘)GetAsyncKeyState()if (GetAsyncKeyState(VK_NUMPAD0) & 0x8000)

5. 注意事项

  • 组合键处理
    使用 GetKeyState() 时,需确保组合键(如 Ctrl+Alt+Delete)在消息队列中同时触发。
  • 多线程环境
    GetAsyncKeyState() 可跨线程检测按键,但需注意焦点窗口问题(若其他窗口拥有焦点,可能返回 0)。
  • Unicode 兼容性
    两者均支持 Unicode 编码的虚拟键码(如 VK_RETURN 对应回车键)。

总结

维度GetKeyState()GetAsyncKeyState()
数据来源消息队列硬件中断
实时性非实时(依赖消息处理)实时(调用即返回)
性能较低
适用场景消息驱动的按键响应需要实时检测的复杂场景(如游戏、后台监控)

通过合理选择函数,可优化程序响应速度与逻辑准确性。若需进一步了解虚拟键码列表,可参考微软官方网页。

http://www.dtcms.com/wzjs/34187.html

相关文章:

  • 花里胡哨的网站网络营销推广微信hyhyk1效果好
  • 字节跳动直播开放平台网站服务器速度对seo有什么影响
  • 酒类做网站品牌网络营销成功案例
  • 徐州免费网站建设模板百度指数怎样使用
  • 宝安石岩网站建设seo案例分析100例
  • 西安做网站的公司客服网络营销心得体会300字
  • 公司网站建设好廊坊网站
  • 怎样免费建个人网站小红书软文推广
  • 管理员修改网站的参数会对网站的搜效果产生什么影响?西安网站到首页排名
  • 查看网站服务器信息各大引擎搜索入口
  • 手机做网站公司有哪些搜索引擎优化培训免费咨询
  • 微信网站开发完全教程seo推广哪家好
  • 做建筑机械网站那个网站好深圳搜索引擎优化seo
  • 互联网推广属于什么经营范围长沙专业竞价优化公司
  • 网页设计尺寸比例seo博客
  • 青岛房产网查询东莞百度推广排名优化
  • 佛山网站建设运营google seo整站优化
  • 公司做外贸网站制作网站的步骤
  • 网站建设zgkr线上推广产品
  • 建设专业网站的价格百度竞价投放
  • 香港外贸网站建设查域名ip地址查询
  • 怎样淘宝做seo网站推广seo优化是啥
  • 长沙市做网站的网站google关键词排名优化
  • 做宣传片的网站济南网站制作平台
  • 做甜品网站的需求分析苏州seo怎么做
  • wordpress在新窗口打开网站更换服务器对seo的影响
  • 公司做网站是管理费用网络营销学什么内容
  • 中国建设银行官方网站 认证企业短视频推广
  • 做外贸网站注意事项优化服务
  • 个人网站制作程序海外市场推广做什么的