DVASPECT2列舉 (ocidl.h)
指定用來優化繪圖程式的新繪圖層面。
Syntax
typedef enum tagDVASPECT2 {
DVASPECT_OPAQUE = 16,
DVASPECT_TRANSPARENT = 32
} DVASPECT2;
常數
DVASPECT_OPAQUE 值: 16 表示不透明、容易裁剪物件的部分。 物件不一定支持這個層面。 |
DVASPECT_TRANSPARENT 值: 32 代表物件上的透明或不規則部分,通常是成本昂貴或無法裁剪的部分。物件不一定支持這個層面。 |
備註
為了支援繪圖優化來減少閃爍,對象必須能夠繪製並傳回本身三個不同層面的相關信息。
層面 | Description |
---|---|
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 |