Метод IViewObjectEx::GetViewStatus (ocidl.h)
Извлекает сведения о непрозрачности объекта и поддерживаемых аспектах рисования.
Синтаксис
HRESULT GetViewStatus(
[out] DWORD *pdwStatus
);
Параметры
[out] pdwStatus
Указатель на состояние представления. Эти сведения возвращаются в виде сочетания значений перечисления VIEWSTATUS .
Возвращаемое значение
Этот метод возвращает значение S_OK при успешном завершении.
Комментарии
Чтобы оптимизировать процесс рисования, контейнер должен иметь возможность определить, является ли объект непрозрачным и имеет ли он твердый фон. Нет необходимости перерисовывать объекты, полностью покрытые полностью непрозрачным объектом. Другие операции, например прокрутка, также могут быть оптимизированы, если объект является непрозрачным и имеет твердый фон.
Метод IViewObjectEx::GetViewStatus возвращает, является ли объект полностью непрозрачным (VIEWSTATUS_OPAQUE бит) и является ли его фон сплошным (VIEWSTATUS_SOLIDBKGND бит). Эти сведения могут со временем измениться. Объект может быть непрозрачным в данный момент времени и стать полностью или частично прозрачным позже, например из-за изменения свойства BackStyle. Объект должен уведомлять свои сайты при изменении с помощью IAdviseSinkEx::OnViewStatusChange , чтобы сайты могли кэшировать эти сведения для высокоскоростного доступа.
Объекты, не поддерживающие IViewObjectEx , считаются всегда прозрачными.
Метод IViewObjectEx::GetViewStatus также возвращает сочетание битов, указывающих, какие аспекты поддерживаются.
Если данный аспект рисования не поддерживается, все методы IViewObjectEx , принимающие аспект рисования в качестве входного параметра, должны завершиться ошибкой и вернуть E_INVALIDARG. Метод IViewObjectEx::GetViewStatus позволяет контейнеру получить сведения обо всех аспектах рисования в одном быстром вызове. Обычно набор поддерживаемых аспектов рисования не должен меняться со временем. Однако если это не так, объект должен уведомить свой контейнер с помощью IAdviseSinkEx::OnViewStatusChange.
Поддерживаемые аспекты рисования не зависят от того, является ли объект непрозрачным, частично прозрачным или полностью прозрачным. В частности, прозрачный объект, который не поддерживает DVASPECT_TRANSPARENT, должен быть правильно нарисован во время передачи назад к переднему краю с помощью DVASPECT_CONTENT. Однако это, скорее всего, приведет к большему мерцание.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ocidl.h |