hough_2001 发表于 2008-1-19 20:38:22

请教清空键盘缓存的问题

在我的程序执行中,按下enter键时,可对popup的对话框执行确认操作,但是发现,如果多按enter几次,当下一次出现popup对话框时,在缓存中记录的前面多按的enter键值将导致对话框的自动确认。所以我需要在每次popup对话框产生之前,先清空键盘缓存,即:不管前面进行了多少次键盘操作,一律清空键值的记忆,以免造成对话框的自动确认,那么,请高手指点,应该用什么指令清空键盘缓存呢?
急用,谢谢了!

cpubbs 发表于 2008-1-19 23:19:11

好像用一次getkey()就会自动清除了!不过我感觉可以将这个控件的快捷键设成enter应该也可以吧兄弟?没有试过重复按会不会有问题!

hough_2001 发表于 2008-1-20 22:21:54

谢谢cupbbs,我曾经试过用getkey(),但这一指令会跳出dos界面的standard i/o对话框,等待键盘操作,这在软件运行时是不允许的。
所以还需要另寻他法,请再不吝赐教,谢谢!

hough_2001 发表于 2008-1-20 22:30:46

我不懂您说的"控件的快捷键设成enter"是什么意思,我用的是message_popup类型的提示对话框,程序默认enter键执行对话确认。
试过getchar(),rewind,flush,fflush都不能有效的清除多余的enter键值。(发现无论多按多少次,最终好象只记录最后一次,即只多余一次键值,会将下一个对话框自动确认掉)
还有什么在labwindows下可行的清除键盘缓存的方法呢?

hough_2001 发表于 2008-1-20 22:41:44

其实我这个问题,用鼠标点击操作就不会出现,那么,在labwindows下如何能屏蔽键盘呢?
页: [1]
查看完整版本: 请教清空键盘缓存的问题