Метод IDCompositionDesktopDevice::CreateTargetForHwnd (dcomp.h)
Создает целевой объект композиции, привязанный к окну, представленному указанным дескриптором окна.
Синтаксис
HRESULT CreateTargetForHwnd(
[in] HWND hwnd,
BOOL topmost,
[out] IDCompositionTarget **target
);
Параметры
[in] hwnd
Окно, к которому должен быть привязан целевой объект композиции. Этот параметр не должен иметь значение NULL.
topmost
Значение TRUE, если визуальное дерево должно отображаться поверх дочерних элементов окна, указанного параметром hwnd; в противном случае визуальное дерево отображается за дочерними элементами.
[out] target
Новый целевой объект композиции. Этот параметр не должен иметь значение NULL.
Возвращаемое значение
Если функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT . Список кодов ошибок см. в разделе Коды ошибок DirectComposition .
Комментарии
Визуальное дерево DirectComposition должно быть привязано к окну, прежде чем что-либо можно будет отобразить на экране. Окно может быть окном верхнего уровня или дочерним окном. В любом случае окно может быть многослойным, но во всех случаях окно должно принадлежать вызывающей процедуре. Если окно принадлежит другому процессу, этот метод возвращает DCOMPOSITION_ERROR_ACCESS_DENIED.
Когда содержимое DirectComposition создается в окно, содержимое всегда создается поверх всего, что обращается непосредственно к окну через контекст устройства, возвращаемый функцией GetDC , или посредством вызовов методов DirectX Present. Однако, поскольку правила обрезки окон применяются к содержимому DirectComposition, если в окне есть дочерние окна, эти дочерние окна могут обрезать визуальное дерево. Самый верхний параметр определяет, обрезают ли дочерние окна визуальное дерево.
По сути, каждое окно состоит из четырех уровней:
- Содержимое, нарисованное непосредственно в дескриптор окна (это самый нижний слой).
- Необязательное визуальное дерево DirectComposition.
- Содержимое всех дочерних окон, если таковые есть.
- Другое необязательное визуальное дерево DirectComposition (это самый верхний слой).
Для каждого окна в системе можно создать не более двух целевых объектов композиции: один самый верхний и один не самый верхний. Если целевой объект композиции уже привязан к указанному окну на указанном уровне, этот метод завершается ошибкой. При уничтожении целевого объекта композиции слой, который он составил, доступен для использования новым целевым объектом композиции.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | dcomp.h |