| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1718 人关注过本帖
标题:123
只看楼主 加入收藏
yourwzh
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-10-31
收藏
 问题点数:0 回复次数:12 
123

14568

[此贴子已经被作者于2005-12-19 21:15:41编辑过]

2004-10-31 11:32
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
好难,偶有些也不会,等高手上来,主要不知道怎样获取按键消息,储存用stack,或者就用string[],而时间有普通函数和API函数显示的,找一下书。
2004-10-31 11:47
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
[转帖]怎样获取鍵盘输入?

  在Tc2.0中有一个处理键盘输入的函数bioskey(); int bioskey(int cmd);   当cmd为1时,bioskey()检测是否有键按下。没有键按下时返回0;有键按下时返回按键码(任何按键码都不为0),但此时并不将检测到的按 键码从键盘缓冲队列中清除。   当cmd为0时,bioskey()返回键盘缓冲队列中的按键码,并将此按键码从键盘缓冲队列中清除。如果键盘缓冲队列为空,则一直等到有键按 下,才将得到的按键码返回。

  Escape键的按键码为0x11b,下面的小程序可以获取按键的按键码。

for (;;) { key=bioskey(0); /* wait for a keystroke */ printf("0x%x\n",key); if (key==0x11b) break; /* Escape */ }

常用按键的按键码如下:

#define VK_LEFT 0x4b00 #define VK_RIGHT 0x4d00 #define VK_DOWN 0x5000 #define VK_UP 0x4800 #define VK_HOME 0x4700 #define VK_END 0x4f00 #define VK_SPACE 0x3920 #define VK_ESC 0x011b #define VK_ENTER 0x1c0d

[此贴子已经被作者于2004-10-31 13:23:19编辑过]

2004-10-31 12:13
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用yourwzh在2004-10-31 11:32:09的发言:

想请教高手,望给与帮助: 如果要编一个程序,用C或VC++: 1.功能和命令提示符差不多,但没有它复杂,例如:命令窗具有命令记忆功能,在窗口中输入的

所有命令行都会被自动记忆下来,通过点击键盘上的上下方向键就可以把刚输入的命令逐一调取出

来,输上BackSpace键删除前面的一个字符; 2.程序的可读性,包括注释、命名; 3.程序的可扩展性; 4.显示时间这样的格式, 例如:2000-10-10 12:00:00 编这个程序的思路应该是怎样的?我该如何做这个方案?给些提示

谢谢!yourwzh@sina.com.cn

1.用string[]数组或者用Stack堆栈实现储存,然后获取键盘信息,根据判断读取然后显示; 2.看到此条件大概你是问作业了吧? 3.用类实现,可派生吧,扩展性就是可以加上更多功能; 4.用time.h中函数,具体自己查询相关书籍或网页。
2004-10-31 12:19
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

获取键盘消息的bioskey()函数的类型是int,所以你定义key时也用int类型,需要用TC编程。

bioskey()需要头文件bios.h,但这个头文件只在TC中有,用VC的话就要用API函数。

[此贴子已经被作者于2004-10-31 13:21:08编辑过]

2004-10-31 13:18
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

而具体关于获取键盘输入的API函数请参见以下页面:

http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=201&ID=4546&page=1

2004-10-31 13:19
devil8283
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2004-10-2
收藏
得分:0 

不要那么麻烦吧。

好象不需要拦截键盘消息吧。

让系统自己处理。

除此之外,和你想法差不多。


曾经我不成熟,不过——现在我也成熟不 到哪里去。在我眼中,人生就像一场脱俗的梦, 谁最先醒来,谁就会最失落。 My dream will go on. —— Goon ---------------------
2004-10-31 14:26
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用devil8283在2004-10-31 14:26:33的发言:

不要那么麻烦吧。

好象不需要拦截键盘消息吧。

让系统自己处理。

除此之外,和你想法差不多。

啊,不好意思我才疏学浅,那你怎么实现,按上下键的时候显示前后命令?
2004-10-31 14:53
devil8283
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2004-10-2
收藏
得分:0 
以下是引用live41在2004-10-31 14:53:21的发言: 啊,不好意思我才疏学浅,那你怎么实现,按上下键的时候显示前后命令?

你要是才疏学浅,那我就是白痴了??

WINDOWS系统下用虚拟键码实现。TC好象只能用bioskey()获取了(呵呵,不好意思,我最近学WINDOWS编程 头都晕了 满脑子WIN API)。C++下我不知道(因为没有bios.h)。

我好象在哪看过有人写过一篇文章 是关于 如何在C++下使用C的库

不知要做何修改,知道的请说明下。

[此贴子已经被作者于2004-10-31 17:49:53编辑过]


曾经我不成熟,不过——现在我也成熟不 到哪里去。在我眼中,人生就像一场脱俗的梦, 谁最先醒来,谁就会最失落。 My dream will go on. —— Goon ---------------------
2004-10-31 17:45
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用devil8283在2004-10-31 17:45:09的发言:

你要是才疏学浅,那我就是白痴了??

WINDOWS系统下用虚拟键码实现。TC好象只能用bioskey()获取了(呵呵,不好意思,我最近学WINDOWS编程 头都晕了 满脑子WIN API)。C++下我不知道(因为没有bios.h)。

我好象在哪看过有人写过一篇文章 是关于 如何在C++下使用C的库

不知要做何修改,知道的请说明下。

噢,晕,同志你有看我上面的和上面的上面和上面的上面的上面的帖子吗?

你说的我已经贴出来,我现在就是想只到VC下用什么API函数,因为bioskey只有TC有。

另外,不要妄自菲薄,我的确不强,混口饭吃,你们不说我菜就好。不用讨论此话题。

2004-10-31 18:42
快速回复:123
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050006 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved