DVASPECT2-Enumeration (ocidl.h)
Gibt neue Zeichnungsaspekte an, die zum Optimieren des Zeichnungsprozesses verwendet werden.
Syntax
typedef enum tagDVASPECT2 {
DVASPECT_OPAQUE = 16,
DVASPECT_TRANSPARENT = 32
} DVASPECT2;
Konstanten
DVASPECT_OPAQUE Wert: 16 Stellt die undurchsichtigen, einfach zu schneidenden Teile eines Objekts dar. Objekte können diesen Aspekt unterstützen oder auch nicht. |
DVASPECT_TRANSPARENT Wert: 32 Stellt die transparenten oder unregelmäßigen Teile des Objekts dar, in der Regel Teile, die teuer oder nicht ausgeschnitten werden können. Objekte können diesen Aspekt unterstützen oder auch nicht. |
Hinweise
Um Zeichnungsoptimierungen zur Verringerung des Flimmerns zu unterstützen, muss ein Objekt in der Lage sein, Informationen zu drei verschiedenen Aspekten von sich selbst zu zeichnen und zurückzugeben.
Aspekt | BESCHREIBUNG |
---|---|
DVASPECT_CONTENT | Gibt den gesamten Inhalt eines Objekts an. Alle Objekte sollten diesen Aspekt unterstützen. |
DVASPECT_OPAQUE | Stellt die undurchsichtigen, einfach zu schneidenden Teile eines Objekts dar. Objekte können diesen Aspekt unterstützen oder auch nicht. |
DVASPECT_TRANSPARENT | Stellt die transparenten oder unregelmäßigen Teile des Objekts dar, in der Regel Teile, die teuer oder nicht ausgeschnitten werden können. Objekte können diesen Aspekt unterstützen oder auch nicht. |
Der Container kann bestimmen, welche dieser Zeichnungsaspekte ein Objekt unterstützt, indem die neue Methode IViewObjectEx::GetViewStatus aufgerufen wird. Einzelne Bits geben Informationen darüber zurück, welche Aspekte unterstützt werden. Wenn ein Objekt die IViewObjectEx-Schnittstelle nicht unterstützt, wird davon ausgegangen, dass es nur DVASPECT_CONTENT unterstützt.
Je nachdem, welche Aspekte unterstützt werden, kann der Container das Objekt dazu auffordern, sich selbst nur während des Front-to-Back-Pass-Passs oder beides zu zeichnen. Die verschiedenen möglichen Fälle sind:
- Objekte, die nur DVASPECT_CONTENT unterstützen, sollten während des Durchlaufs von hinten nach vorne gezeichnet werden, wobei alle undurchsichtigen Teile eines überlappenden Objekts ausgeschnitten werden. Da alle Objekte diesen Aspekt unterstützen sollten, kann ein Container, der sich nicht ums Flimmern sorgt – vielleicht, weil er in einer Offscreen-Bitmap zeichnet – entscheiden, alle Objekte auf diese Weise zu zeichnen und den Front-to-Back-Pass zu überspringen.
- Objekte, die DVASPECT_OPAQUE unterstützen, werden möglicherweise aufgefordert, diesen Aspekt während des Durchgangs von vorne nach hinten zu zeichnen. Der Container ist dafür verantwortlich, die undurchsichtigen Bereiche des Objekts auszuschneiden, bevor ein weiteres Objekt dahinter gemalt wird.
- Objekte, die DVASPECT_TRANSPARENT unterstützen, werden möglicherweise aufgefordert, diesen Aspekt während des Durchgangs von hinten nach vorne zu zeichnen. Der Container ist dafür verantwortlich, undurchsichtige Teile überlappender Objekte auszuschneiden, bevor ein Objekt diesen Aspekt zeichnen lässt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | ocidl.h |