[gelöst] Windows-HWND zu QWidget*-Konvertierung
Verfasst: 19. September 2006 09:12
Hallo zusammen,
habe gerade einen Bildschirmschoner für Windows geschrieben, der auch wunderbar funktioniert mit Anzeige und Konfigurationsdialog. Das einzige, was nicht geht, ist die Vorschau in dem "Mini-Monitor", wenn ich mit der rechten Maustaste auf den Desktop klicke und die Registerkarte "Bildschirmschoner" anwählen.
Über die Kommandozeile kommt u.a. solch ein Parameter "/p:345678". Dieser Parameter ist die WId des Fensters, innerhalb dessen ich meine Vorschau anzeigen muß, sprich der "Mini-Monitor".
Ich habe es dann so versucht:
[in WId steht eben jene extrajhierte Nummer des parent Windows]
QWidget *parent=QWidget::find((HWND)WId);
Dann eine Debug-Ausgabe:
if (parent==NULL)
QMessageBox::information(NULL,"","No parent "+QString::number(WId));
else QMessageBox::information(NULL,"","Parent found "+QString::number(WId));
Dann das Widget erstellen und reichmalen etc.
QWidget *miniMonitor=new QWidget(parent);
Funktioniert aber nicht. parent ist immer NULL. Trotz scheinbar gültiger WId bekomme ich einfach keinen QWidget* Zeiger darauf und infolgedessen kann ich kein Child-Window anlegen.
Danke schön für Tips, Bernd
habe gerade einen Bildschirmschoner für Windows geschrieben, der auch wunderbar funktioniert mit Anzeige und Konfigurationsdialog. Das einzige, was nicht geht, ist die Vorschau in dem "Mini-Monitor", wenn ich mit der rechten Maustaste auf den Desktop klicke und die Registerkarte "Bildschirmschoner" anwählen.
Über die Kommandozeile kommt u.a. solch ein Parameter "/p:345678". Dieser Parameter ist die WId des Fensters, innerhalb dessen ich meine Vorschau anzeigen muß, sprich der "Mini-Monitor".
Ich habe es dann so versucht:
[in WId steht eben jene extrajhierte Nummer des parent Windows]
QWidget *parent=QWidget::find((HWND)WId);
Dann eine Debug-Ausgabe:
if (parent==NULL)
QMessageBox::information(NULL,"","No parent "+QString::number(WId));
else QMessageBox::information(NULL,"","Parent found "+QString::number(WId));
Dann das Widget erstellen und reichmalen etc.
QWidget *miniMonitor=new QWidget(parent);
Funktioniert aber nicht. parent ist immer NULL. Trotz scheinbar gültiger WId bekomme ich einfach keinen QWidget* Zeiger darauf und infolgedessen kann ich kein Child-Window anlegen.
Danke schön für Tips, Bernd