2013-11-21 5 views
0

Мне нужен пример WindowHandleToPlatform для C++ Builder Я хочу использовать ручку, чтобы сделать BitBlt и другие функции в форме я могу сделать это с помощью VCL и прекрасно работает. Подумайте WindowHandleToPlatform подходит для FireMonkey, но документация очень беденпример Причал WindowHandleToPlatform C++

Благодаря

+0

Вы имеете в виду TPlatformServices? и что вы хотите попасть в IFMXWindowService? –

+0

Нет, я хочу получить доступ к дескриптору реального дескриптора, поскольку дескриптор firemonkey не поддерживает много вещей. – user3016178

+0

Использование WindowHandleToPlatform (Form1.Handle) даст вам фактический дескриптор окна Windows. –

ответ

1

Попробуйте это:

#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. Если вы хотите что-то кросс-платформенное, вам придется найти другое решение.

Смежные вопросы