HWND in Qt?

Alles rund um die Programmierung mit Qt
Antworten
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

HWND in Qt?

Beitrag 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.
MfG, Alci.

Aktuelle Projekte:
FModPlayer: Audio-Player auf Basis von FModEx
Epp.org: C++-IDE mit MinGW-Compiler

Entwickelt wird unter anderem mit Qt 4.1.4
Einmaliger
Beiträge: 48
Registriert: 22. Juli 2006 11:42

Beitrag von Einmaliger »

Versuch's mal mit QWidget::winId().
Alci
Beiträge: 70
Registriert: 24. März 2006 23:34

Beitrag 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.
MfG, Alci.

Aktuelle Projekte:
FModPlayer: Audio-Player auf Basis von FModEx
Epp.org: C++-IDE mit MinGW-Compiler

Entwickelt wird unter anderem mit Qt 4.1.4
Einmaliger
Beiträge: 48
Registriert: 22. Juli 2006 11:42

Beitrag von Einmaliger »

Da habe ich dich wohl falsch verstanden. Ich glaube nicht, dass das geht.
Einmaliger
Beiträge: 48
Registriert: 22. Juli 2006 11:42

Beitrag 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.
Antworten