#include #include #include #include class TChild : public QWidget { public: TChild(QWidget* parent, QWidget* window2) : QWidget(parent, Qt::Dialog), m_button(parent), m_window2(window2) { } void mouseReleaseEvent(QMouseEvent*) { m_button->setParent(m_window2, m_button->windowFlags()); //SetWindowLongPtr((HWND)winId(), GWL_HWNDPARENT, m_window2 ? (LONG_PTR)m_window2->winId() : 0); m_button->show(); } QWidget* m_button; QWidget* m_window2; }; int main(int argc, char** argv) { QApplication app(argc, argv); QWidget* window1 = new QWidget(0, Qt::Window); QPushButton* button = new QPushButton(QLatin1String("Button"), window1); window1->setWindowTitle(QLatin1String("Window 1")); window1->resize(400,400); window1->move(100,100); window1->show(); QWidget* window2 = new QWidget(0, Qt::Window); window2->setWindowTitle(QLatin1String("Window 2")); window2->resize(400,400); window2->move(300,300); window2->show(); TChild* child = new TChild(button, window2); child->setWindowTitle(QLatin1String("Child of button")); child->resize(200,200); child->move(500,500); child->show(); return app.exec(); }