Freigeben über


IDCompositionDesktopDevice::CreateSurfaceFromHwnd-Methode (dcomp.h)

Erstellt ein Wrapperobjekt, das die Rasterung eines mehrstufigen Fensters darstellt und einem Visual für die Komposition zugeordnet werden kann.

Syntax

HRESULT CreateSurfaceFromHwnd(
  [in]  HWND     hwnd,
  [out] IUnknown **surface
);

Parameter

[in] hwnd

Das Handle des mehrschichtigen Fensters, für das ein Wrapper erstellt werden soll. Ein mehrstufiges Fenster wird erstellt, indem WS_EX_LAYERED beim Erstellen des Fensters mit der CreateWindowEx-Funktion oder durch Festlegen von WS_EX_LAYERED über SetWindowLong nach dem Erstellen des Fensters angegeben wird.

[out] surface

Das neue Kompositionsoberflächenobjekt. Dieser Parameter darf nicht NULL sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben. Eine Liste der Fehlercodes finden Sie unter DirectComposition-Fehlercodes .

Hinweise

Sie können den Surface-Zeiger in Aufrufen der IDCompositionVisual::SetContent-Methode verwenden, um den Inhalt eines oder mehrerer Visuals festzulegen. Nachdem sie den Inhalt festgelegt haben, bilden die Visuals den Inhalt des angegebenen mehrschichtigen Fensters, solange das Fenster überlappend ist. Wenn das Fenster nicht mehr gespeichert ist, wird der Fensterinhalt aus der Ausgabe der Kompositionsstruktur ausgeblendet. Wenn das Fenster später neu überschichtet wird, wird der Fensterinhalt wieder angezeigt, solange er noch einem Visual zugeordnet ist. Wenn die Größe des Fensters geändert wird, werden die betroffenen Visuals neu zusammengesetzt.

Der Inhalt des Fensters wird nicht über die Lebensdauer des Fensters hinaus zwischengespeichert. Das heißt, wenn das Fenster zerstört wird, beenden die betroffenen Visuals das Komponieren des Fensters.

Wenn das Fenster außerhalb des Bildschirms verschoben oder die Größe auf null geändert wird, beendet das System die Zusammenstellung des Inhalts dieser Visuals. Sie sollten die DwmSetWindowAttribute-Funktion mit dem flag DWMWA_CLOAK verwenden, um das mehrschichtige untergeordnete Fenster zu "umschließen", wenn Sie das ursprüngliche Fenster ausblenden müssen, während das System weiterhin den Inhalt der Visuals verfassen kann.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile dcomp.h

Weitere Informationen

IDCompositionDesktopDevice

IDCompositionVisual::SetContent