FireMonkeyでWindowsハンドルを取得する
概要
FireMonkeyのHandleは、Windowsのネイティブのハンドルではないため、「WindowHandleToPlatform」という関数を利用し、FireMonkey ウィンドウ ハンドルを、プラットフォームに依存するウィンドウ ハンドル(この場合は Windows のウィンドウ ハンドル)に変換する必要があります。
但し、この方法は、Windows OSプラットホーム専用となりますので、MacOSX、iOS、Androidといった別のプラットホームで利用はできません。
以下のコードは、FireMonkeyからMessageBoxダイアログを呼び出す簡単な例です。
Delphiの場合:
uses .. Winapi.Windows, FMX.Platform.Win;
..
var
Handle: TWinWindowHandle;
begin
Handle := WindowHandleToPlatform(Form1.Handle);
MessageBox(Handle.Wnd, 'メッセージ', 'タイトル', MB_OK);
end;
..
C++Builderの場合:
#include <Winapi.Windows.hpp>
#include <FMX.Platform.Win.hpp>
..
TWinWindowHandle *Handle;
Handle=WindowHandleToPlatform(Form1->Handle);
MessageBox(Handle->Wnd,"メッセージ","タイトル",MB_OK);
..