怎样判断键盘是否有按键按下?
2012-07-23 01:25
706 查看
一般情况下我们边写程序需要在程序运行中判断是否用户按下了键盘的键,比如按任意键退出的实现,那么怎样实现这个功能呢?有人可能想到C++中的Meaasge中用case判断,太麻烦了,或者用kbhit()函数,这个函数不错,但是这个函数有时候还是不太好用,如果在while(!kbhit())中有很大一个循环,猜下会有什么结果?这里推荐一种判断的方法,采用API函数GetAsyncKeyState(),具体参数解释,老规矩见MSDN,具体实现如下:
我们可以在文件头定义:#define KEY_DOWM(vk_c) (GetAsyncKeyState(vk_c)&0x8000?1:0)
这样我们可以在程序循环中直接使用KEY_DOWN(/*按键值*/)来判断某个键是否被按下。
比如KEY_DOWN("A")来判断A键有没有被按下,如果被按下返回一个true。
////////////////////////////////////////////
bool quit = false;
while(!quit)
{
if(KEY_DOWN(VK_ESCAPE) quit=true;
//Do SomeThing
}
////////////////////////////////////////////
在这个循环中,当你按下Esc键,循环退出;
vk_c是一个虚拟键值,比如VK_ESCAPE是Esc键的虚拟键值。
这样就实现了判断是否有键盘键被按下的功能,试试吧。
我们可以在文件头定义:#define KEY_DOWM(vk_c) (GetAsyncKeyState(vk_c)&0x8000?1:0)
这样我们可以在程序循环中直接使用KEY_DOWN(/*按键值*/)来判断某个键是否被按下。
比如KEY_DOWN("A")来判断A键有没有被按下,如果被按下返回一个true。
////////////////////////////////////////////
bool quit = false;
while(!quit)
{
if(KEY_DOWN(VK_ESCAPE) quit=true;
//Do SomeThing
}
////////////////////////////////////////////
在这个循环中,当你按下Esc键,循环退出;
vk_c是一个虚拟键值,比如VK_ESCAPE是Esc键的虚拟键值。
这样就实现了判断是否有键盘键被按下的功能,试试吧。
相关文章推荐
- Linux C中读取/dev/input/event设备来判断键盘按键是否按下
- Linux C中读取/dev/input/event设备来判断键盘按键是否按下
- PB中如何控制判断大写以及小键盘指示灯是否开启并与按键协调工作
- Linux C中读取/dev/input/event设备来判断键盘按键是否按下
- 键盘按键的处理和单字节的判断,不允许输入汉字
- 怎样判断一个盘上是否有文件
- shell 如何判断用户从键盘输入的变量是否为数字
- Js判断键盘按键
- JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
- P53.37(设计一个程序,从键盘输入一个正整数M,判断该正整数是否左右对称,若对称,则输出yes,否则输出no。)
- Fragment:判断是否显示当前Fragment viewpager ;Fragment监听按键点击事件;显示隐藏事件
- Js判断键盘按键
- 第七章 课堂例子 怎样判断对象是否可以转换?
- Js判断键盘按键
- 编写一个Java应用程序。用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数, 并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同, 例如12121、3
- 跨平台的检测键盘是否有键按下并返回按键的值
- 怎样判断电容器是否损坏
- Android怎样判断当前屏幕是否为横屏状态
- javascript判断鼠标按键和键盘按键的方法
- Linux下怎样判断一个binary是否可以debug