Метод ImageAttributes::ClearNoOp (gdiplusimageattributes.h)
Метод ImageAttributes::ClearNoOp очищает параметр NoOp для указанной категории.
Синтаксис
Status ClearNoOp(
[in, optional] ColorAdjustType type
);
Параметры
[in, optional] type
Тип: ColorAdjustType
Элемент перечисления ColorAdjustType , указывающий категорию, для которой очищается параметр NoOp. Значение по умолчанию — ColorAdjustTypeDefault.
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .
Комментарии
Вы можете отключить настройку цвета для определенного типа объекта, вызвав метод ImageAttributes::SetNoOp . Позже можно восстановить настройку цвета для этого типа объекта, вызвав метод ImageAttributes::ClearNoOp . Например, следующая инструкция отключает настройку цвета для кистей:
myImageAttributes.SetNoOp(ColorAdjustTypeBrush);
Следующая инструкция восстанавливает настройку цвета кисти, которая была выполнена до вызова ImageAttributes::SetNoOp:
myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);
Примеры
В следующем примере создается объект Image из файла .emf. Код также создает объект ImageAttributes . Вызов ImageAttributes::SetColorMatrix задает матрицу настройки цвета кисти этого объекта ImageAttributes в матрицу, которая преобразует красный цвет в зеленый.
Код вызывает DrawImage три раза, каждый раз передавая адрес объекта Image и адрес объекта ImageAttributes . Когда изображение рисуется в первый раз, весь красный цвет, окрашенный кистью, преобразуется в зеленый. (Красный цвет, нарисованный ручками, не изменяется.) Перед вторым рисованием изображения код вызывает метод ImageAttributes::SetNoOp объекта ImageAttributes . Поэтому, когда изображение рисуется во второй раз, кисти не применяются никакие корректировки цвета. Перед тем как изображение будет отрисовано в третий раз, код вызывает метод ImageAttributes::ClearNoOp , который восстанавливает параметры настройки цвета кисти. Таким образом, когда изображение рисуется в третий раз, весь красный цвет, окрашенный кистью, преобразуется в зеленый.
VOID Example_SetClearNoOp(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"TestMetafile4.emf");
ImageAttributes imAtt;
ColorMatrix brushMatrix = { // red converted to green
0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
imAtt.SetColorMatrix(
&brushMatrix,
ColorMatrixFlagsDefault,
ColorAdjustTypeBrush);
// Draw the image (metafile) using brush color adjustment.
// Items filled with a brush change from red to green.
graphics.DrawImage(
&image,
Rect(0, 0, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Temporarily disable brush color adjustment.
imAtt.SetNoOp(ColorAdjustTypeBrush);
// Draw the image (metafile) without brush color adjustment.
// There is no change from red to green.
graphics.DrawImage(
&image,
Rect(0, 80, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
// Reinstate brush color adjustment.
imAtt.ClearNoOp(ColorAdjustTypeBrush);
// Draw the image (metafile) using brush color adjustment.
// Items filled with a brush change from red to green.
graphics.DrawImage(
&image,
Rect(0, 160, image.GetWidth(), image.GetHeight()), // dest rect
0, 0, image.GetWidth(), image.GetHeight(), // source rect
UnitPixel,
&imAtt);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusimageattributes.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |