怎么当方向键VK_LEFT,VK_RIGHT,VK_UP,VK_DOWN 按下的时候,TWinControl捕捉不到WM_KEYDOWN消息?

stanely 2004-08-23 12:00:05
procedure TListView_San.WndProc(var message: tmessage);
begin

try

case message.Msg of
WM_KEYDOWN:
showmessage(inttostr(message.wparam));//当是方向键的时候总是不触发。我在tbutton等这样的有焦点控件的onkeydown里面也捕捉不到方向键的消息,因为按下方向键的时候焦点就离开了此控件。而即便ketpreview=true的tform的onkeydown里面也捕捉不到。怎么能让twincontrol捕捉到这个消息呢?难道不是wm_keydown?我不想用钩子,谢谢!!
finally
inherited;
end;
end;
...全文
1276 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiirii 2004-08-23
  • 打赏
  • 举报
回复
Eastunfail(龙子龙孙)==(恶鱼杀手)
貼的鏈接已經解決了你的問題!!!
jinjazz 2004-08-23
  • 打赏
  • 举报
回复
<<难道不是wm_keydown?

的确不是,你看看procedure TControl.WndProc(var Message: TMessage);定义就知道了
jinjazz 2004-08-23
  • 打赏
  • 举报
回复
unit testbutton;

interface
uses buttons,Windows, Messages, Classes, Controls, Forms, Graphics, StdCtrls,
ExtCtrls, CommCtrl,dialogs,sysutils;
type Ttestbutton=Class(Tbutton)
private
procedure wndproc(var message:Tmessage); override;
end;
procedure Register;
implementation

procedure Ttestbutton.wndproc(var message:Tmessage);
begin
if (Message.Msg >= WM_KEYFIRST) and (Message.Msg <= WM_KEYLAST) then
showmessage(inttostr(message.wparam));//
inherited;
end;

procedure Register;
begin
RegisterComponents('System', [Ttestbutton]);
end;
end.
capoatguitar 2004-08-23
  • 打赏
  • 举报
回复
用个笨方法
procedure TForm1.NewMessage(var Msg: TMsg; var Handled: Boolean);
begin
if msg.message=wm_keydown then
if button1.Focused then
if(msg.wParam=37)or(msg.wParam=38)or(msg.wParam=39)or(msg.wParam=40) then
showmessage('');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
application.OnMessage:=NewMessage;
end;
蓝色光芒 2004-08-23
  • 打赏
  • 举报
回复
处理
Application.OnMessage
从新写一个过程来处理消息,或者屏蔽什么的。
luke5678 2004-08-23
  • 打赏
  • 举报
回复
MK!
beyondtkl 2004-08-23
  • 打赏
  • 举报
回复
MK
Eastunfail 2004-08-23
  • 打赏
  • 举报
回复
http://dev.csdn.net/article/23/23213.shtm
DemonLoveLizzy 2004-08-23
  • 打赏
  • 举报
回复
我运行了以前写的一个程序,WPARAM的值分别是37、38、39、40对应左、上、右、下。
DemonLoveLizzy 2004-08-23
  • 打赏
  • 举报
回复
能截到的。可是我的DELPHI打不开了。没法写代码
DemonLoveLizzy 2004-08-23
  • 打赏
  • 举报
回复
怎么可能

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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