Graphics::GetCompositingMode 方法 (gdiplusgraphics.h)

Graphics::GetCompositingMode 方法获取当前为此 Graphics 对象设置的合成模式。

语法

CompositingMode GetCompositingMode();

返回值

类型: CompositingMode

此方法返回 CompositingMode 枚举的元素,该元素指示当前为此 Graphics 对象设置的合成模式。

注解

假设创建一个 SolidBrush 对象,该颜色的 alpha 分量为 192,大约为 255% 的 75%。 如果 Graphics 对象的合成模式设置为 CompositingModeSourceOver,则用纯色画笔填充的区域是 75% 画笔颜色和 25% 背景色的混合。 如果 Graphics 对象的合成模式设置为 CompositingModeSourceCopy,则背景色不会与画笔颜色混合。 但是,画笔呈现的颜色的强度是 alpha 分量为 255 时所呈现颜色的 75%。

示例

以下示例创建 一个 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)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

Alpha 混合线条和填充

显卡

Graphics::GetCompositingQuality

Graphics::SetCompositingMode

Graphics::SetCompositingQuality

HatchBrush

新功能

SolidBrush

使用合成模式控制 Alpha 混合