好玩的一个问题,不响应onkeyDown?(50分)

  • 主题发起人 主题发起人 heipi2002
  • 开始时间 开始时间
H

heipi2002

Unregistered / Unconfirmed
GUEST, unregistred user!
创建了一个form上的flash,能全屏
但全屏后怎么回到正常状态??
form的onkeydown没有任何响应
flash的事件里面也没有onkeydown之类的东西
运行后很好看,可是就不能干别的了:(
 
是不是要把form的keyPreview=true?
 
Flash获得了焦点
你的Form的onkeydown就没法响应了
自己截获Flash的WndProc处理事件才行
 
解决了一部分, if Key=VK_ESCAPE then
ShowWindow(videoForm.Handle ,SW_Normal);
执行无效,其他任何键都有效
esc按键被屏蔽掉了:(
 
给个截获flash的例子吧:)
 
var
OldWndProc:Pointer

function NewWndProc(hWnd: hWnd
Msg: Cardinal
wParam: Cardinal
lParam: Cardinal): LongInt;
begin
Result:=0;
if Msg=WM_KEYDOWN then //在这里处理自己的消息
begin
Exit
//如果此消息不需要Flash处理,直接返回
end;

Result:=CallWindowProc(OldWindowProc,WindowHandle,TheMessage,ParamW,ParamL)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
OldWndProc:=Pointer(SetWindowLong(Flash.Handle,GWL_WNDPROC,LongInt(@NewWndProc)));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
SetWindowLong(Flash.Handle,GWL_WNDPROC,LongInt(OldWndProc));
end;

 
辛苦:)多谢
 
后退
顶部