向edit发送按键事件

zzh54zzh 2005-09-06 02:18:17
PostMessage(edtNum.Handle, WM_KEYDOWN, VK_SEPARATOR, 0);
发送逗号','后edit无反应
另外不知道发送'#'的按键值
...全文
135 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzh54zzh 2005-09-06
  • 打赏
  • 举报
回复
谢谢大家啦
zzh54zzh 2005-09-06
  • 打赏
  • 举报
回复
感谢xixuemao(俺可是㊣②㈧经儿滴人) ,爱死你了! ^*^
xixuemao 2005-09-06
  • 打赏
  • 举报
回复
sendmessage(edit1.Handle, WM_CHAR, $41, 1);

这个就是A,呵呵
leonkim 2005-09-06
  • 打赏
  • 举报
回复

Edit1.SetFocus;
keybd_event(65,MapVirtualKey(65,0),0,0);//键下a键。
keybd_event(65,MapVirtualKey(65,0),KEYEVENTF_KEYUP,0);//放开a键。
xixuemao 2005-09-06
  • 打赏
  • 举报
回复
再或者楼主可以用WM_CHAR消息。如:
procedure TForm1.Button1Click(Sender: TObject);
begin
sendmessage(edit1.Handle, WM_CHAR, VK_SEPARATOR, 1);
end;
xixuemao 2005-09-06
  • 打赏
  • 举报
回复
所以如果楼主仅仅是想给edit赋值的话,用楼上几位说的WM_SETTEXT就可以了。

不知楼主到底想实现什么呢?
xixuemao 2005-09-06
  • 打赏
  • 举报
回复
WM_KEYDOWN不是所有键都可以发送的。

楼主可以放一个edit,然后在edit的keydown事件里面试试,VK_SEPARATOR这个键是没有反应的。
VK_SEPARATOR在keypress里面才有反映。


同样楼主也可以试试

sendmessage(edit1.Handle, WM_KEYDOWN, VK_Delete, 1);

这个就可以实现的。
leonkim 2005-09-06
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
msg : Pchar;
begin
msg := StrAlloc(50);
StrCopy(msg,'hello world');
SendMessage(edit1.Handle,WM_SETTEXT, 0, Integer(msg));
end;
lzh7735 2005-09-06
  • 打赏
  • 举报
回复
查看一下SDK帮助看WM_KEYDOWN消息的参数
cncharles 2005-09-06
  • 打赏
  • 举报
回复
procedure TForm1.btn1Click(Sender: TObject);
var
S:string;
begin
s:=',';
SendMessage(edt1.Handle, WM_SETTEXT, 0, Integer(S));
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧