cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1257|回复: 3

获取键盘按键状态

[复制链接]
发表于 2009-8-12 20:56:34 | 显示全部楼层 |阅读模式
本帖最后由 muer 于 2009-8-12 21:51 编辑

我想通过键盘不同的按键来触发执行不同的函数,譬如按“A”时执行函数f1,按“B”时执行函数f2,使用windows API函数GetKeyState(按键的ASCII值),当返回值不为0时去执行相应的函数,使用时发现当不按“A”,按键盘其它键时偶尔也会执行函数f2,经查,发现按其他键时函数GetKeyState(65)的返回值为0(此时不执行f1)或为1(此时会导致函数f1执行),而按“A”时,GetKeyState(65)的返回值会在-128和-127间变化,此时f1也会执行,请问是使用方法不对吗?怎样使用才能实现通过按键来执行不同的函数?急!谢谢!
发表于 2009-8-13 08:34:50 | 显示全部楼层
KeyHit (void);,GetKey (void);用这两个函数就可以了...
发表于 2009-8-13 08:36:27 | 显示全部楼层
不需要使用API函数,你可以直接在面板的EVENT_KEYPRESS事件中进行处理。
详细例程请参看:
http://www.cpubbs.com/bbs/thread-58961-1-1.html
或王建新《LabWindows/CVI测试技术及工程应用》第三章源码(论坛中已上传)!
 楼主| 发表于 2009-8-13 20:33:16 | 显示全部楼层
本帖最后由 muer 于 2009-8-13 20:49 编辑

我原先也是看了王建新的书第10章dll的例子才用了函数GetKeyState(),发现有问题,现在按照楼上介绍的方法,原先的目的已经能够实现了,非常谢谢:)。但为什么函数GetKeyState()使用时会出现上述问题呢?是我的使用方法不合适吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-20 22:39 , Processed in 0.749119 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表