Поделиться через


Метод Graphics::GetCompositingMode (gdiplusgraphics.h)

Метод Graphics::GetCompositingMode получает режим создания, заданный в данный момент для этого объекта Graphics .

Синтаксис

CompositingMode GetCompositingMode();

Возвращаемое значение

Тип: CompositingMode

Этот метод возвращает элемент перечисления CompositingMode , который указывает режим создания, заданный в данный момент для данного объекта Graphics .

Комментарии

Предположим, вы создаете объект SolidBrush на основе цвета с альфа-компонентом 192, что составляет около 75 процентов от 255. Если для объекта Graphics установлен режим компоновки CompositingModeSourceOver, области, заполненные сплошной кистью, представляют собой сочетание цвета кисти на 75 процентов и цвета фона 25 процентов. Если для объекта Graphics задан режим компоновки CompositingModeSourceCopy, цвет фона не смешивается с цветом кисти. Тем не менее, цвет, отображаемый кистью, имеет интенсивность, которая составляет 75 процентов от того, что было бы, если бы альфа-компонент был 255.

Примеры

В следующем примере создается объект Graphics и устанавливается режим создания compositingModeSourceCopy. Код создает объект SolidBrush на основе цвета с альфа-компонентом 128. Код передает адрес этой кисти методу Graphics::FillRectangle объекта Graphics , чтобы заполнить прямоугольник цветом, который не смешивается с цветом фона. Вызов метода Graphics::GetCompositingMode объекта Graphics демонстрирует, как получить режим создания (который в данном случае уже известен). Код определяет, является ли режим создания 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
Header gdiplusgraphics.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Альфа-смешение цвета для линий и заливок

Графика

Graphics::GetCompositingQuality

Graphics::SetCompositingMode

Graphics::SetCompositingQuality

HatchBrush

Новые функции

SolidBrush

Использование режима создания для управления альфа-смешения