enter键问题(在线等)(50分)

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

luosheng

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在程序中使enter与tab具用同样的功能,该怎么写,请提供源码。
 
模拟:(举例)
//回车
keybd_event(13, MapVirtualKey(13, 0), 0, 0);
keybd_event(13, MapVirtualKey(13, 0), KEYEVENTF_KEYUP, 0);
//tab
keybd_event(9, MapVirtualKey(9, 0), 0, 0);
keybd_event(9, MapVirtualKey(9, 0), KEYEVENTF_KEYUP, 0);
//del
keybd_event(VK_Delete, MapVirtualKey(VK_Delete, 0), 0, 0);
keybd_event(VK_Delete, MapVirtualKey(VK_Delete, 0),
KEYEVENTF_KEYUP, 0);
 
procedure Tfm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_RETURN:
perform(WM_NEXTDLGCTL, 0, 0);
end ;
end ;
 
谢谢allenk;rockjie你的代码我没看懂,能不能解释一下??
 
来迟了,给点安慰分吧..呵~~!
 
if key=#13 then
begin
key:=#0;
perform(CM_DialogKey,VK_TAB,0);
end;
别忘了设form的keypreview属性为true,还有各个控件的taborder属性
 
allenk 怎么没用啊?
 
keypreview没设对吧?
 
哦,我的这个是模拟按键的程序,可能对你不太合适,但是这个api对所有的windows开发工具通用,哈哈
简单点就象chocolate的那种做法,就是根据按键发消息。
我写的是api,就是说当在某一事件中发送key_event消息,后面的参数是键值,硬件的键值,
当按键按下是0,按键uo就直接写KEYEVENTF_KEYUP,最后一个参数基本上为0。
keybd_event(9, MapVirtualKey(9, 0), 0, 0);
keybd_event(9, MapVirtualKey(9, 0), KEYEVENTF_KEYUP, 0);
应该成对出现。
 
后退
顶部