перечисление DVASPECT2 (ocidl.h)
Задает новые аспекты рисования, используемые для оптимизации процесса рисования.
Синтаксис
typedef enum tagDVASPECT2 {
DVASPECT_OPAQUE = 16,
DVASPECT_TRANSPARENT = 32
} DVASPECT2;
Константы
DVASPECT_OPAQUE Значение: 16 Представляет непрозрачные, легко обрезки части объекта. Объекты могут поддерживать или не поддерживать этот аспект. |
DVASPECT_TRANSPARENT Значение: 32 Представляет прозрачные или нерегулярные части объекта , как правило, части, которые дорого или невозможно вырезать. Объекты могут поддерживать или не поддерживать этот аспект. |
Комментарии
Для поддержки оптимизации рисования для уменьшения мерцания объект должен иметь возможность рисовать и возвращать сведения о трех отдельных аспектах самого себя.
Аспект | Описание |
---|---|
DVASPECT_CONTENT | Задает все содержимое объекта . Все объекты должны поддерживать этот аспект. |
DVASPECT_OPAQUE | Представляет непрозрачные, легко обрезки части объекта. Объекты могут поддерживать или не поддерживать этот аспект. |
DVASPECT_TRANSPARENT | Представляет прозрачные или нерегулярные части объекта , как правило, части, которые дорого или невозможно вырезать. Объекты могут поддерживать или не поддерживать этот аспект. |
Контейнер может определить, какие из этих аспектов рисования поддерживает объект, вызвав новый метод IViewObjectEx::GetViewStatus. Отдельные биты возвращают сведения о поддерживаемых аспектах. Если объект не поддерживает интерфейс IViewObjectEx , предполагается, что он поддерживает только DVASPECT_CONTENT.
В зависимости от того, какие аспекты поддерживаются, контейнер может запросить сам объект нарисоваться только во время передачи "от переднего к заднему", только от обратного к переднему проходу или в обоих вариантах. Возможные варианты:
- Объекты, поддерживающие только DVASPECT_CONTENT, должны быть отрисованы во время передачи сзади к переднему краю, при этом все непрозрачные части любого перекрывающегося объекта обрезаются. Так как все объекты должны поддерживать этот аспект, контейнер, не беспокоятся о мерцаниях ( возможно, потому, что он рисует на растровом рисунке вне экрана), может выбрать рисование всех объектов таким образом и пропустить переход от переднего к заднему.
- Объектам, поддерживающим DVASPECT_OPAQUE, может быть предложено нарисовать этот аспект во время передачи от переднего к заднему. Контейнер отвечает за вырезку непрозрачных областей объекта перед закрашиванием других объектов за ним.
- Объектам, поддерживающим DVASPECT_TRANSPARENT, может быть предложено нарисовать этот аспект во время передачи сзади к переднему. Контейнер отвечает за вырезку непрозрачных частей перекрывающихся объектов, прежде чем позволить объекту нарисовать этот аспект.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | ocidl.h |