• 0
Авторизация  
VirusZ2D

Обработка Сообщений Windows

Вопросы

как правильно подключить функцию на Delphi робит на c++ нет ((

HWND FHwnd;

LONG_PTR OldWndProc;

 

в создании формы

    FHwnd = Fmx::Platform::Win::WindowHandleToPlatform(Handle)->Wnd;
    OldWndProc = GetWindowLongPtr(FHwnd, GWL_WNDPROC);
    SetWindowLongPtr(FHwnd, GWL_WNDPROC, LONG_PTR(MyWndProc));

 

 LRESULT __stdcall MyWndProc(HWND Hwnd,UINT Msg, WPARAM WParam,LPARAM LParam)
{
   if (Msg == WM_MOVE) {
          ShowMessage("Тест") ;
   }
   return CallWindowProc(OldWndProc,Hwnd, Msg, WParam, LParam); /////// ошибка  E2034 Cannot convert 'long' to 'long (__stdcall *)(HWND__ *,unsigned int,unsigned int,long)'
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 ответ на этот вопрос

  • 0

сам же и отвечаю )))

заменить 

LONG_PTR OldWndProc;

на

typedef LRESULT(__stdcall * func)(HWND,unsigned,WPARAM,LPARAM);
func OldWndProc;

 

OldWndProc = GetWindowLongPtr(FHwnd, GWL_WNDPROC);

на

OldWndProc = (func)GetWindowLongPtr(FHwnd, GWL_WNDPROC);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу