Метод IDCompositionDesktopDevice::CreateSurfaceFromHwnd (dcomp.h)
Создает объект-оболочку, который представляет растеризацию многоуровневого окна и может быть связан с визуальным элементом для композиции.
Синтаксис
HRESULT CreateSurfaceFromHwnd(
[in] HWND hwnd,
[out] IUnknown **surface
);
Параметры
[in] hwnd
Дескриптор многоуровневого окна, для которого создается оболочка. Многоуровневое окно создается путем указания WS_EX_LAYERED при создании окна с помощью функции CreateWindowEx или путем установки WS_EX_LAYERED с помощью SetWindowLong после создания окна.
[out] surface
Новый объект поверхности композиции. Этот параметр не должен иметь значение NULL.
Возвращаемое значение
Если функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT . Список кодов ошибок см. в разделе Коды ошибок DirectComposition .
Комментарии
Вы можете использовать указатель поверхности в вызовах метода IDCompositionVisual::SetContent, чтобы задать содержимое одного или нескольких визуальных элементов. После настройки содержимого визуальные элементы составляют содержимое указанного многоуровневого окна, если окно слоистый. Если окно не наложено, содержимое окна исчезает из выходных данных дерева композиции. Если позже окно будет повторно наложено, содержимое окна появляется до тех пор, пока оно по-прежнему связано с визуальным элементом. Если размер окна изменен, затронутые визуальные элементы создаются повторно.
Содержимое окна не кэшировано за пределами срока его существования. То есть, если окно будет уничтожено, затронутые визуальные элементы перестают составлять окно.
Если окно перемещается за экран или изменяется до нуля, система перестает составлять содержимое этих визуальных элементов. Следует использовать функцию DwmSetWindowAttribute с флагом DWMWA_CLOAK, чтобы "скрыть" многоуровневые дочерние окна, если необходимо скрыть исходное окно, позволяя системе продолжать составлять содержимое визуальных элементов.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | dcomp.h |