为何ocx组件TShockwaveFlash上按ESC键不触发wm_keydown消息,而其他VCL组件行 ? (40分)

  • 主题发起人 主题发起人 一少
  • 开始时间 开始时间

一少

Unregistered / Unconfirmed
GUEST, unregistred user!
Tlv = class(TListView)
private
procedure aa(var msg : TWMKeyDown)
message wm_keydown;
end;
按esc能触发wm_keydown消息

Tlv = class(TShockwaveFlash)
private
procedure aa(var msg : TWMKeyDown)
message wm_keydown;
end;
按esc不能触发wm_keydown消息
 
可能是TShockwaveFlash先取得了消息
尝试一下拦截application.onmessage消息
 
HooK了看看。
 
Tlv = class(TShockwaveFlash)
private
procedure aa(var msg : TWMKeyDown)
message CN_keydown;
end;
 
to e-
你的方法我试了,除了Esc,其他的键基本都能触发了
 
Tlv = class(TShockwaveFlash)
private
procedure aa(var msg : TWMKeyDown)
message CN_KEYUP;
end
 
这没什么办法,可能是OCX自己处理了ESC键吧。

能否用变通的方法呢?

比如:1、不用ESC。
2、HOOK
3、onmessage 消息试试。
 
后退
顶部