Я пытаюсь написать плагин для 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 не показывается в листере. Что не так? Можно ли поступить как-нибудь по-другому?
|