Как получить дескриптор окна виджета для передачи в win32 api MessageBox в Qt

0

Короче говоря, я хочу использовать win32Api в Qt5.1.1, и у меня есть простой пример.

Я хочу передать дескриптор виджета функции WinApi int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType).

Проблема в первом параметре (HWND hWnd,...).

Моя попытка: (Ошибка)

WId wind = (HWND)w.winId(); // 'w' is the instance of my widget.
MessageBox(wind, "Hello world!", "Message", MB_OK);

Как получить обработчик виджета (окна), чтобы передать функцию winapi MessageBox?

Теги:
qt
winapi
qt5

1 ответ

1

Если ваш Qt, все виджеты должны иметь функцию QWidget::winId(). Просто вызовите winId() и вы получите дескриптор окон.

  • 0
    Это ошибки времени ссылки. Компилятор не знает, где находятся определения MessageBox и MB_OK . Вы должны будете включить #include <windows.h> в верхней части файла, который используется MessageBox .
  • 0
    Кажется, это переход с Qt4, который я использую, на Qt5, который останавливает конвертацию. Позвольте мне исследовать это немного
Показать ещё 11 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню