Попробуйте это:
#include <FMX.Platform.Win.hpp>
void __fastcall TMyForm::DoSomething()
{
TWinWindowHandle *ThisHandle = WindowHandleToPlatform(this->Handle);
if (ThisHandle != NULL)
{
HWND hWnd = ThisHandle->Wnd;
if (ThisWnd != NULL)
{
// use ThisWnd as needed...
}
}
}
Или использовать FormToHWND()
вместо (который использует WindowHandleToPlatform()
внутренне):
#include <FMX.Platform.Win.hpp>
void __fastcall TMyForm::DoSomething()
{
HWND ThisWnd = FormToHWND(this);
if (ThisWnd != NULL)
{
// use ThisWnd as needed...
}
}
В любом случае, имейте в виду, что эти функции являются конкретными Windows. Если вы хотите что-то кросс-платформенное, вам придется найти другое решение.
Вы имеете в виду TPlatformServices? и что вы хотите попасть в IFMXWindowService? –
Нет, я хочу получить доступ к дескриптору реального дескриптора, поскольку дескриптор firemonkey не поддерживает много вещей. – user3016178
Использование WindowHandleToPlatform (Form1.Handle) даст вам фактический дескриптор окна Windows. –