IViewObjectEx::GetViewStatus-Methode (ocidl.h)
Ruft Informationen über die Deckkraft des Objekts und die unterstützten Zeichnungsaspekte ab.
Syntax
HRESULT GetViewStatus(
[out] DWORD *pdwStatus
);
Parameter
[out] pdwStatus
Ein Zeiger auf die Ansicht status. Diese Informationen werden als Kombination der VIEWSTATUS-Enumerationswerte zurückgegeben.
Rückgabewert
Diese Methode gibt S_OK bei Erfolg zurück.
Hinweise
Um den Zeichnungsprozess zu optimieren, muss der Container in der Lage sein zu bestimmen, ob ein Objekt undurchsichtig ist und ob es einen soliden Hintergrund hat. Es ist nicht erforderlich, Objekte neu zu zeichnen, die vollständig von einem vollständig undurchsichtigen Objekt abgedeckt sind. Andere Vorgänge, z. B. scrollen, können auch stark optimiert werden, wenn ein Objekt undurchsichtig ist und einen soliden Hintergrund aufweist.
Die IViewObjectEx::GetViewStatus-Methode gibt zurück, ob das Objekt vollständig undurchsichtig ist (VIEWSTATUS_OPAQUE Bit) und ob der Hintergrund einfarbig ist (VIEWSTATUS_SOLIDBKGND Bit). Diese Informationen können sich mit der Zeit ändern. Ein Objekt kann zu einem bestimmten Zeitpunkt undurchsichtig sein und später vollständig oder teilweise transparent werden, z. B. durch eine Änderung der BackStyle-Eigenschaft. Ein Objekt sollte seine Websites benachrichtigen, wenn es sich mit IAdviseSinkEx::OnViewStatusChange ändert, damit die Websites diese Informationen für den Hochgeschwindigkeitszugriff zwischenspeichern können.
Objekte, die IViewObjectEx nicht unterstützen, gelten als immer transparent.
Die IViewObjectEx::GetViewStatus-Methode gibt auch eine Kombination von Bits zurück, die angibt, welche Aspekte unterstützt werden.
Wenn ein bestimmter Zeichnungsaspekt nicht unterstützt wird, sollten alle IViewObjectEx-Methoden , die einen Zeichnungsaspekt als Eingabeparameter verwenden, fehlschlagen und E_INVALIDARG zurückgeben. Mit der IViewObjectEx::GetViewStatus-Methode kann der Container in einem Schnellaufruf Informationen zu allen Zeichnungsaspekten abrufen. Normalerweise sollte sich der Satz der unterstützten Zeichnungsaspekte nicht mit der Zeit ändern. Wenn dies jedoch nicht der Fall war, sollte ein Objekt seinen Container mithilfe von IAdviseSinkEx::OnViewStatusChange benachrichtigen.
Welche Zeichnungsaspekte unterstützt werden, ist unabhängig davon, ob das Objekt undurchsichtig, teilweise transparent oder völlig transparent ist. Insbesondere sollte ein transparentes Objekt, das DVASPECT_TRANSPARENT nicht unterstützt, während des Durchlaufs von Hinten zu Front mit DVASPECT_CONTENT korrekt gezeichnet werden. Dies dürfte jedoch zu mehr Flimmern führen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | ocidl.h |