Метод IDCompositionVisual2::SetOpacityMode (dcomp.h)
Задает режим непрозрачности для этого визуального элемента.
Синтаксис
HRESULT SetOpacityMode(
[in] DCOMPOSITION_OPACITY_MODE mode
);
Параметры
[in] mode
Режим непрозрачности, используемый при создании визуального элемента на экране.
Возвращаемое значение
Если функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT . Список кодов ошибок см. в разделе Коды ошибок DirectComposition .
Комментарии
Режим непрозрачности влияет на то, как свойство Opacity объекта группы эффектов влияет на состав визуального вложенного дерева. DirectComposition поддерживает два режима непрозрачности: слой и умножение. В режиме слоя каждое визуальное вложенное дерево может логически рассматриваться как растровое изображение, содержащее непрозрачную растеризацию всего этого вложенного дерева, к которому затем применяется значение непрозрачности. Таким образом перекрывающиеся непрозрачные поверхности смешиваются с фоном под-дерева, но не друг с другом. В отличие от этого, в режиме умножения непрозрачность применяется по отдельности к каждой поверхности по мере ее создания, поэтому поверхности смешиваются друг с другом. Режим умножения быстрее, чем режим слоя, и всегда предпочтителен, если визуальное дерево содержит полностью неперекрытое содержимое. Однако режим умножения может выдавать нежелательные визуальные результаты для перекрывающихся элементов.
По умолчанию визуальный элемент наследует режим непрозрачности родительского визуального элемента, который может наследовать режим непрозрачности родительского визуального элемента и т. д. Визуальный элемент использует режим DCOMPOSITION_OPACITY_MODE_LAYER, если этот метод никогда не вызывается для визуального элемента или если этот метод вызывается с DCOMPOSITION_OPACITY_MODE_INHERIT. Если ни для каких визуальных элементов не задан режим непрозрачности, по умолчанию для всего визуального дерева используется DCOMPOSITION_OPACITY_MODE_LAYER.
Если параметр opacityMode отличается от DCOMPOSITION_OPACITY_MODE_INHERIT, поверхности этого визуального элемента состоят из указанного режима непрозрачности. Кроме того, этот режим непрозрачности становится новым значением по умолчанию для дочерних элементов текущего визуального элемента. То есть, если режим непрозрачности дочерних элементов этого визуального элемента не изменяется или явно имеет значение DCOMPOSITION_OPACITY_MODE_INHERIT, поверхности дочерних визуальных элементов создаются с помощью режима непрозрачности этого визуального элемента.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8.1 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | dcomp.h |
Библиотека | Dcomp.lib |
DLL | Dcomp.dll |