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

个人网站电商怎么做/网页制作app

个人网站电商怎么做,网页制作app,国外有哪些做建筑材料的网站,个人网站域名后缀书籍:《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.whsansanxincailiao.cn/news/32039076.html

相关文章:

  • 端 传媒网站模板/icp备案查询官网
  • 云南网站建设一度科技公司/社群营销的具体方法
  • 怎么修改wordpress 字体/专业网站优化外包
  • 可以做设计的网站/整合营销传播成功案例
  • 百度引擎提交入口/seo推广的公司
  • svg图片做网站背景/网站站点
  • 沈阳市建设公司网站/如何弄一个自己的网站
  • 企业网站源码搭建/九易建网站的建站流程
  • 甘肃省建设局官方网站/seo营销技巧
  • 购物网站大全分类/sem培训学校
  • 大学网站建设情况汇报/怎样在百度上发布广告
  • 印象网站建设/百度上打广告怎么收费
  • 企业网站每年要多少钱/世界搜索引擎大全
  • 建设银行网站官网登录短信验证/嘉兴网站建设
  • 网站建设虚拟主机/seo外包公司是啥
  • php mysql 网站模板/网络软文范文
  • 门户网站的意义/seo网站优化推广
  • 制作宝安网站建设/阳城seo排名
  • 徐州金网网站建设/全球十大搜索引擎排名
  • 网站制作 深圳信科网络/百度口碑网
  • 西宁做网站君博专注/数据网站
  • 2018怎么做网站淘宝客/什么是推广
  • 信息网站建设的意义/百度怎么推广网站
  • 代理注册/网站推广优化服务
  • 黄山找人做网站/线上怎么做推广和宣传
  • 连云港做网站哪里好/查网站权重
  • 万创网做的网站怎么样/惠州seo外包
  • wordpress商店如何/seo优化工程师
  • 万润 企业网站建设/太原网站建设谁家好
  • 企业网站建设哪里做网站好/站长工具ip地址查询