(ocidl.h) DVASPECT2 枚举
指定用于优化绘图过程的新绘图方面。
语法
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 |