Share via


Graphics::GetCompositingMode 方法 (gdiplusgraphics.h)

Graphics::GetCompositingMode 方法會取得目前為此 Graphics 物件設定的撰寫模式。

Syntax

CompositingMode GetCompositingMode();

傳回值

類型: CompositingMode

這個方法會傳回 CompositingMode 列舉的專案,指出目前為此 Graphics 物件設定的撰寫模式。

備註

假設您根據色彩建立 SolidBrush 物件,該色彩的 Alpha 元件為 192,大約是 75% 的 255%。 如果您的 Graphics 物件將其組合模式設定為 CompositingModeSourceOver,則填滿純色筆刷的區域是 75% 筆刷色彩和 25% 背景色彩的混合。 如果您的 Graphics 物件將其組合模式設定為 CompositingModeSourceCopy,則背景色彩不會與筆刷色彩混合。 不過,筆刷轉譯的色彩具有 75% 的濃度,如果 Alpha 元件為 255,則為該色彩。

範例

下列範例會建立 Graphics 物件,並將其撰寫模式設定為 CompositingModeSourceCopy。 此程式代碼會根據 Alpha 元件為 128 的色彩建立 SolidBrush 物件。 程序代碼會將該筆刷的位址傳遞至 Graphics 物件的 Graphics::FillRectangle 方法,以未與背景色彩混合的色彩填滿矩形。 呼叫 Graphics 物件的 Graphics::GetCompositingMode 方法會示範如何取得組合模式 (在此案例中已知道) 。 程式代碼會判斷撰寫模式是否為 CompositingModeSourceCopy,若是如此,請將它變更為 CompositingModeSourceOver。 然後程式代碼會第二次呼叫 Graphics::FillRectangle ,以筆刷色彩和背景色彩的一半混合色彩填滿矩形。

VOID Example_GetCompositingMode(HDC hdc)
{
   Graphics graphics(hdc);
   
   graphics.SetCompositingMode(CompositingModeSourceCopy);
   SolidBrush alphaBrush(Color(128, 255, 0, 0));
   graphics.FillRectangle(&alphaBrush, 0, 0, 100, 100);
   
   // Get the compositing mode.
   CompositingMode compMode = graphics.GetCompositingMode();
   
   // Change the compositing mode if it is CompositingModeSourceCopy.
   if(compMode == CompositingModeSourceCopy)
   {
      graphics.SetCompositingMode(CompositingModeSourceOver);
   }  
  
   graphics.FillRectangle(&alphaBrush, 0, 100, 100, 100);
}

規格需求

需求
最低支援的用戶端 Windows XP、Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 gdiplusgraphics.h (包含 Gdiplus.h)
程式庫 Gdiplus.lib
Dll Gdiplus.dll

另請參閱

Alpha 混色線條和填色

圖形

Graphics::GetCompositingQuality

Graphics::SetCompositingMode

Graphics::SetCompositingQuality

HatchBrush

新功能

SolidBrush

使用組合模式控制 Alpha 混合