Graphics::SetCompositingMode 方法 (gdiplusgraphics.h)

Graphics::SetCompositingMode 方法设置此 Graphics 对象的合成模式。

语法

Status SetCompositingMode(
  [in] CompositingMode compositingMode
);

parameters

[in] compositingMode

类型: CompositingMode

CompositingMode 枚举的元素,该枚举指定合成模式。

返回值

类型: 状态

如果方法成功,则返回 Ok,这是 Status 枚举的元素。

如果 方法失败,它将返回 Status 枚举的其他元素之一。

注解

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

不能将 CompositingModeSourceCopy 与 TextRenderingHintClearTypeGridFit 一起使用。

示例

以下示例创建 一个 Graphics 对象,并将其合成模式设置为 CompositingModeSourceOver。 该代码基于 alpha 分量为 128 的颜色创建 SolidBrush 对象。 代码将该画笔的地址传递给 Graphics 对象的 Graphics::FillRectangle 方法,以填充矩形的颜色,该颜色是画笔颜色和背景色的半混合。 然后,代码将 Graphics 对象的合成模式设置为 CompositingModeSourceCopy,并使用相同的画笔填充第二个矩形。 在这第二个矩形中,画笔颜色不与背景色混合。

VOID Example_SetCompositingMode(HDC hdc)
{
   Graphics graphics(hdc);
   
   // Create a SolidBrush object with an alpha-blended color.
   SolidBrush alphaBrush(Color(180, 255, 0, 0));

   // Set the compositing mode to CompositingModeSourceOver,
   // and fill a rectangle.
   graphics.SetCompositingMode(CompositingModeSourceOver);
   graphics.FillRectangle(&alphaBrush, 0, 0, 100, 100);

   // Set the compositing mode to CompositingModeSourceCopy,
   // and fill a rectangle.
   graphics.SetCompositingMode(CompositingModeSourceCopy);
   graphics.FillRectangle(&alphaBrush, 100, 0, 100, 100);
}

要求

   
最低受支持的客户端 Windows XP、Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 gdiplusgraphics.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

Alpha 混合线条和填充

CompositingMode

显卡

Graphics::GetCompositingMode

Graphics::GetCompositingQuality

Graphics::SetCompositingQuality

Graphics::SetTextRenderingHint

HatchBrush

新功能

SolidBrush

TextRenderingHint