Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 3 (https://www.otvetnemail.ru/novyj-arhiv-3-813/)
-   -   Как создать QWidget потомком не QT окна? (https://www.otvetnemail.ru/novyj-arhiv-3-813/kak-sozdat-qwidget-potomkom-ne-qt-okna-262953/)

Guest 28.09.2011 22:00

Как создать QWidget потомком не QT окна?
 
Я пытаюсь написать плагин для Total Commander с помощью QT. Плагин это dll, которая обязана реализовать следующую простую функцию:Код:HWND __stdcall ListLoad(HWND parentWin, char* fileToLoad, int ShowFlags);Т.е. мне нужно показать QWidget, который будет потомком (в смысле Windows) для parentWin. parentWin, естественнно, к QT отношения не имеет. Я безуспешно пробовал следующий подход:Код:class ListerWidget : public QWidget{public: ListerWidget(HWND listerWin) { // нужно сохранить и восстановить WindProc, т.к. QT ее затрет, // у окна листера она и так уже есть и QT WindProc ему не к чему LONG oldWinProc = GetWindowLong(listerWin, GWL_WNDPROC); create(listerWin, false, false); SetWindowLong(listerWin, GWL_WNDPROC, oldWinProc); }};Далее где-то внутри ListLoad:Код: ListerWidget *lister = new ListerWidget(parentWin); MyWidget *w = new MyWidget(lister); w->show();Все зашибись работает, кроме того, что MyWidget не показывается в листере. Что не так? Можно ли поступить как-нибудь по-другому?


Часовой пояс GMT, время: 11:44.


© www.otvetnemail.ru - Форум вопросов и ответов.