ich habe folgendes Problem:
Ich habe eine Anwendung, die komplett mif der MFC erstellt wurde und auf dem MDI Konzept beruht.
Meine Aufgabe ist es nun, ein QTWidget zu programmieren, dass sich am Rand eines MDI Fensters befindet. Dieses QT Widget soll quasi als erweiterte Toolbar fungieren.
Dazu habe ich eine von QWidget abgeleitete Klasse erstellt, die als Parent das MDI Fenster über die Brücke QWinWidget erhält.
Die neue Klasse heisst: QDatChildMenuBar.
Eine leere Toolbar (m_pRightToolbar) von MFC dient hier als Platzhalter, worüber sich mein QWidget legen soll.
Code: Alles auswählen
QWinWidget *wRight = new QWinWidget(this->GetSafeHwnd());
wRight->showCentered();
m_pQMenuBarRight = new QDatChildMenuBar(wRight);
m_pRightToolbar->GetWindowRect(&r); // Dimension des Platzhalters holen
m_pQMenuBarRight->OnParentRepaint(r.left, r.top, r.Width(), r.Height()); // Passt die eigene Größe an die Größe des Platzhalters an
m_pQMenuBarRight->CreateVerticalBar(); // Erzeugt die internen Child-Widgets in einem QVBoxLayout
m_pQMenuBarRight->show();
Das klappt auch ganz gut, nur wird das Widget nicht angezeigt wenn ich im Konstruktor keine WindowFlags übergeben, also so:
Code: Alles auswählen
QDatChildMenuBar::QDatChildMenuBar(QWidget * parent) : QWidget(parent)

In den freien Bereichen unten und rechts im Fenster sollte sich mein QT Widget hinpflanzen.
Ansatz 2
Nun kann man im Konstruktor weitere WindowFlags übergeben, danach wird mein Widget gezeichnet. Aber es entsteht ein neues Problem:
Code: Alles auswählen
QDatChildMenuBar::QDatChildMenuBar(QWidget * parent) : QWidget(parent, Qt::Window|Qt::FramelessWindowHint)

Beide Ansätze führen bisher nicht zum Ziel, denn einmal wird mein Widget gar nicht gezeichnet, und beim anderen mal liegt es immer im Vorderund. Kann mir jemand von euch dabei helfen?
Gruß,
Ulli.