按两次'['键为什么得到的key值不同。 (20分)

  • 主题发起人 主题发起人 lyctree
  • 开始时间 开始时间
L

lyctree

Unregistered / Unconfirmed
GUEST, unregistred user!
按两次'['键为什么得到的key值不同。一次是219,一次是229。总是间隔出现。
好奇怪啊。。。。。。
229表示的是什么,有什么作用!!
 
贴出你的代码先
 
procedure TfrmRouteProc.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
showMessage(IntToStr(Key));
end;
当按两次'['键时,key就会一次是219,一次是229。总是间隔出现。
 
没有吧,我刚试过了,一直显示219,你把系统重新启动一边吧
 
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
showMessage(IntToStr(Key));
end;
我试了,没有问题啊
 
好奇怪啊!又好使了!
能告诉我229是什么意思吗??
VK_PROCESSKEY = 229
 
可是key=229时表示的是什么呢???
 
一个常量值.系统定义.
 
kingdeezj,能告诉我这个值有什么作用,什么时候出现??
 
测试了一下,在输入法打开的情况下"["键值为229,不打开输入法值为"219",但没有出现你说的交替出现的情况.我的测试环境:Win2000 Professional + Delphi6
 
中文下的符号的AscII值与英文下的是不同的!
 
同意 kingdeezj
 
229只是表明在中文模式下,没有什么意义,并且使用的是中文标点符号输入时,只显示229!你要是需要监控‘[’字符,可以使用API函数!
GetAsyncKeyState($db)=0表示不是按下的‘[’键!
 
cnzhw007,说的的很正确。谢谢。
 
后退
顶部