Поделиться через


Метод 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

См. также раздел

IAdviseSinkEx::OnViewStatusChange

IViewObjectEx

VIEWSTATUS