Seite 1 von 1

HWND in Qt?

Verfasst: 16. August 2006 17:52
von Alci
Hallo,

wie es schon die Überschrift schon verrät, ich möchte ein HWND aus der WinAPI in Qt nutzen. Ist das möglich? Ich möchte dabei auch auf die Messages der WinAPI-Message-Queue zugreifen können. Ich weiß, dass es bei der kommerziellen Version von Qt die Klasse QWinHost für solche Sachen gibt, aber ich will mir nur wegen dieser einen Klasse deswegen nicht Qt kaufen.

Verfasst: 16. August 2006 18:44
von Einmaliger
Versuch's mal mit QWidget::winId().

Verfasst: 16. August 2006 19:00
von Alci
Hi,

mit winId() bekomme ich das HWND vom jeweiligen QWidget. Vielleicht hab' ich mich falsch ausgedrückt, aber ich möchte eigentlich den umgekehrten Weg. Ich möchte ein mit CreateWindow (bzw. CreateWindowEx) erstelltes HWND in Qt nutzen.

Verfasst: 16. August 2006 23:53
von Einmaliger
Da habe ich dich wohl falsch verstanden. Ich glaube nicht, dass das geht.

Verfasst: 19. August 2006 00:59
von Einmaliger
Gerade durch Zufall in QWidget.h gefunden:

Code: Alles auswählen

protected:
    void create(WId = 0, bool initializeWindow = true, bool destroyOldWindow = true);
Und die zugehörige Doku:
Creates a new widget window if \a window is 0, otherwise sets the widget's window to \a window.

Initializes the window (sets the geometry etc.) if \a initializeWindow is true. If \a initializeWindow is false, no initialization is performed. This parameter only makes sense if \a window is a valid window.

Destroys the old window if \a destroyOldWindow is true. If \a destroyOldWindow is false, you are responsible for destroying the window yourself (using platform native code).

The QWidget constructor calls create(0,true,true) to create a window for this widget.
Das könnte sein, was du suchst.