“KeyUp和KeyDown所接收的消息和KeyPress接收到的完全相同”这句话错哪?

大家帮帮忙。。。... 大家帮帮忙。。。 展开
 我来答
Magic_旭
2013-05-05 · 超过41用户采纳过TA的回答
知道答主
回答量:287
采纳率:100%
帮助的人:120万
展开全部
KeyPress接收到的是字符的编码,另两个接收的是字符的键盘虚拟码。

252794908说得很有理,我再补充一下:
这三个先后顺序是:Key_Press,Key_Down,Key_Up,其中Key_Press可以用来禁止用户按哪个键哦!!!
追问
字符的编码,字符的键盘虚拟码?这是什么?能举例吗
追答
字符编码(ASCII码)是国际上统一的编码,比如a的编码是97,但键盘虚拟码是65

各个英文字母、数字、英文符号等在内存当中都是以编码的形式来存储的,占一个字节,计算机通过不同的编码来区分是哪一个字符,而汉字占两个字节,两个字节当中不同的编码又代表了不同的汉字

键盘虚拟码只是区分键盘上的各个键而已

当用户按下字母a键的时候,先产生一个字符编码,通过这个编码来区分是哪一个字符,然后产生按下的虚拟码,再弹起时,又产生一个虚拟码(和按下的虚拟码是相同的),如果产生字符编码的时候,用户的代码将这个消息过滤了,那么不会产生虚拟码,也起到禁止按这个键的作用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
252794908
2013-05-03 · 超过11用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:33万
展开全部
楼上说的很有道理,我再补充点自己的理解
1.KEYUP/DOWN比KEYPRESS要多接受SHIFT/ALT/CTRL这三个按键的情况
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
End Sub
SHIFT参数就是接受那三个特殊按键的

2.KEYDOWN ,KEYUP分别指的是按下键(不放开)和抬起按键(跟什么时候按下的没太大关系) 的消息,而KEYPRESS是按过一个按键后发出的消息,这里是有细微的区别的。

举个例子吧,要做一个漂亮的按钮,按下时变成红色,抬起时变回去,这时必在KEYDOWN事件下让它变成红色,再在KEYUP事件下让它变回原色,而KEYPRESS就无法实现这一点

3.呃,没了
希望有所帮助!祝楼主学习顺利!
追问
KEYPRESS是按过一个按键后发出的消息,这是什么呢?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式