请问TC++3.0中如何得知键盘上的一个按钮是不是被按下的

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:22:29
就像VB里的KeyDown和KeyUp事件一样
谢谢!
谢谢,可是这个方法不太好。因为当你按下一个键,就和你不断快速按下那个键的效果是一样的,也就是说bioskey(1)的值一下是0,一下不是0。比如按着Enter键,循环打印Key_up_down(13),就会发现值是不停变化的。
if(Key_up_down(13)==1)
printf("a");
else
printf("b");

还有两种方法好像是一样的吧,只是把10进制数换成了16进制数

这是我写的一个函数,可以实现这个功能

int Key_up_down(int key_ascii)
{
if (bioskey(1) && getch() == key_ascii) /*无按键时直接跳过*/
return 1;
else
return 0;
}

参数 key_ascii 为要判断的键对应的 ASCII 字符 的值。

测试程序 (“Enter” 键 )

#include <conio.h>
#include <stdio.h>
int main(void)
{
int Key_up_down(int key_ascii);
while(1)
if (Key_up_down(13))
{ printf("The key 'Enter' is pressed\n");
getch();
return 0;
}
}

int Key_up_down(int key_ascii)
{
if (bioskey(1) && getch() == key_ascii)
return 1;
else
return 0;
}

还有一种写法也可以:

int Key_up_down(int key)
{
if (bioskey(1) && bioskey(0) == key) /*无按键时直接跳过*/
return 1;
else
return 0;
}

参数 key 是要判断的键对应的键盘码。

测试程序 (“Enter” 键 )

#include <conio.h>
#include <std