Метод 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