Partager via


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

Crée un objet cible de composition lié à la fenêtre représentée par le handle de fenêtre spécifié.

Syntaxe

HRESULT CreateTargetForHwnd(
  [in]  HWND                hwnd,
        BOOL                topmost,
  [out] IDCompositionTarget **target
);

Paramètres

[in] hwnd

Fenêtre à laquelle l’objet cible de composition doit être lié. Ce paramètre ne doit pas être NULL.

topmost

TRUE si l’arborescence visuelle doit être affichée au-dessus des enfants de la fenêtre spécifiée par le paramètre hwnd ; sinon, l’arborescence visuelle est affichée derrière les enfants.

[out] target

Nouvel objet cible 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

Une arborescence visuelle DirectComposition doit être liée à une fenêtre avant que tout ne puisse être affiché à l’écran. La fenêtre peut être une fenêtre de niveau supérieur ou une fenêtre enfant. Dans les deux cas, la fenêtre peut être une fenêtre en couches, mais dans tous les cas, la fenêtre doit appartenir au processus appelant. Si la fenêtre appartient à un autre processus, cette méthode retourne DCOMPOSITION_ERROR_ACCESS_DENIED.

Lorsque le contenu DirectComposition est composé dans la fenêtre, le contenu est toujours composé par-dessus tout ce qui est dessiné directement dans cette fenêtre via le contexte de l’appareil retourné par la fonction GetDC , ou par des appels aux méthodes DirectX Present. Toutefois, étant donné que les règles de découpage de fenêtre s’appliquent au contenu DirectComposition, si la fenêtre a des fenêtres enfants, ces fenêtres enfants peuvent couper l’arborescence visuelle. Le paramètre le plus haut détermine si les fenêtres enfants coupent l’arborescence visuelle.

D’un point de vue conceptuel, chaque fenêtre se compose de quatre couches :

  1. Contenu dessiné directement dans le handle de fenêtre (il s’agit de la couche la plus inférieure).
  2. Arborescence de visuels DirectComposition facultative.
  3. Le contenu de toutes les fenêtres enfants, le cas échéant.
  4. Une autre arborescence visuelle Facultative DirectComposition (il s’agit de la couche la plus haute).
Les quatre couches sont découpées dans la zone visible de la fenêtre.

Au maximum, seules deux cibles de composition peuvent être créées pour chaque fenêtre du système, l’une la plus haute et l’autre non la plus haute. Si une cible de composition est déjà liée à la fenêtre spécifiée au niveau de la couche spécifiée, cette méthode échoue. Lorsqu’un objet cible de composition est détruit, la couche qu’il a composée peut être utilisée par un nouvel objet cible de composition.

Configuration requise

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

Voir aussi

IDCompositionDesktopDevice

IDCompositionVisual2