Partager via


IdCompositionDesktopDevice ::CreateSurfaceFromHwnd, méthode (dcomp.h)

Crée un objet wrapper qui représente la rastérisation d’une fenêtre en couches et qui peut être associé à un visuel pour la composition.

Syntaxe

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

Paramètres

[in] hwnd

Handle de la fenêtre en couches pour laquelle créer un wrapper. Une fenêtre en couches est créée en spécifiant WS_EX_LAYERED lors de la création de la fenêtre avec la fonction CreateWindowEx ou en définissant WS_EX_LAYERED via SetWindowLong une fois la fenêtre créée.

[out] surface

Nouvel objet de surface de composition. Ce paramètre ne doit pas être NULL.

Valeur retournée

Si la fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT. Pour obtenir la liste des codes d’erreur, consultez Codes d’erreur DirectComposition .

Remarques

Vous pouvez utiliser le pointeur de surface dans les appels à la méthode IDCompositionVisual ::SetContent pour définir le contenu d’un ou de plusieurs visuels. Après avoir défini le contenu, les visuels composent le contenu de la fenêtre en couche spécifiée tant que la fenêtre est en couches. Si la fenêtre est non superposée, le contenu de la fenêtre disparaît de la sortie de l’arborescence de composition. Si la fenêtre est ensuite redimensionnée, le contenu de la fenêtre réapparaît tant qu’il est toujours associé à un visuel. Si la fenêtre est redimensionnée, les visuels affectés sont re-composés.

Le contenu de la fenêtre n’est pas mis en cache au-delà de la durée de vie de la fenêtre. Autrement dit, si la fenêtre est détruite, les visuels affectés cessent de composer la fenêtre.

Si la fenêtre est déplacée hors écran ou redimensionnée à zéro, le système cesse de composer le contenu de ces visuels. Vous devez utiliser la fonction DwmSetWindowAttribute avec l’indicateur DWMWA_CLOAK pour « masquer » la fenêtre enfant superposée lorsque vous devez masquer la fenêtre d’origine tout en permettant au système de continuer à composer le contenu des visuels.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête dcomp.h

Voir aussi

IDCompositionDesktopDevice

IDCompositionVisual ::SetContent