Delphi FMX:控制手柄
我在firemonkey中使用DirectShow,在输出视频时遇到问题Delphi FMX:控制手柄,delphi,controls,handle,firemonkey,Delphi,Controls,Handle,Firemonkey,我在firemonkey中使用DirectShow,在输出视频时遇到问题 iVideoWindow.Put_Owner(Panel1.Handle); 我需要TPanel的手柄来显示视频。但是FMX控制没有手柄。我知道,Firemonkey不是基于传统的windows和FMX不提供这一点,但如何解决这个问题呢?我不知道,请帮帮我。FmxHandleToHWND现在被标记为已弃用 WindowHandleToPlatform将给定的FireMonkey句柄转换为其平台相关的窗口句柄(在您的情况
iVideoWindow.Put_Owner(Panel1.Handle);
我需要TPanel的手柄来显示视频。但是FMX控制没有手柄。我知道,Firemonkey不是基于传统的windows和FMX不提供这一点,但如何解决这个问题呢?我不知道,请帮帮我。
FmxHandleToHWND
现在被标记为已弃用
WindowHandleToPlatform
将给定的FireMonkey句柄转换为其平台相关的窗口句柄(在您的情况下为Windows句柄)。如果您想将窗口句柄作为HWND(Windows api)类型,现在可以调用此函数:
WindowHandleToPlatform(form1.Handle).wnd
在“使用”部分输入:
uses
FMX.Platform.Win;
请注意,仅调用WindowHandleToPlatform(form1.Handle)不起作用,您必须访问.wnd才能获得winapi句柄
由于这会降低应用程序的可移植性,因此在执行此操作时,最好放置{$IFDEF MSWINDOWS},如果要移植到MacOS,则必须为该平台编写代码。或者将此代码放在一个单独的单元中,该单元仅处理MS Windows相关代码,如果将此单元定义为您的使用。要获得面板的控制权,请尝试以下操作:
uses
FMX.Platform.Win;
var
Handle : HWND;
begin
Handle := TWinWindowHandle (Panel1).Wnd;
end;
我得说,你会走运的。尽管如此,您可以通过使用
FmxHandleToHWND
函数转换表单的handletohwnd
句柄来使用表单作为ivideowner.Owner的目标,或者查看其他播放视频文件的方法,例如在。