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的物件在回到前階段期間繪製這個層面。 容器負責裁剪重迭物件的不透明部分,再讓物件繪製這個層面。
即使支援DVASPECT_OPAQUE和DVASPECT_TRANSPARENT,容器仍可自由使用這些層面。 特別是,如果是在螢幕外位圖中繪製,因此對閃爍不小心,容器可能會使用DVASPECT_CONTENT和一次性繪圖。 不過,在雙階段繪圖中,如果容器在前至後傳遞期間使用DVASPECT_OPAQUE,則必須在回傳期間使用DVASPECT_TRANSPARENT,才能完成對象的轉譯。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
標頭 ocidl.h

另請參閱

IViewObject::D raw