Méthode ImageAttributes ::ClearNoOp (gdiplusimageattributes.h)
La méthode ImageAttributes ::ClearNoOp efface le paramètre NoOp pour une catégorie spécifiée.
Syntaxe
Status ClearNoOp(
[in, optional] ColorAdjustType type
);
Paramètres
[in, optional] type
Type : ColorAdjustType
Élément de l’énumération ColorAdjustType qui spécifie la catégorie pour laquelle le paramètre NoOp est effacé. La valeur par défaut est ColorAdjustTypeDefault.
Valeur retournée
Type : État
Si la méthode réussit, elle retourne Ok, qui est un élément de l’énumération Status .
Si la méthode échoue, elle retourne l’un des autres éléments de l’énumération Status .
Remarques
Vous pouvez désactiver l’ajustement des couleurs pour un certain type d’objet en appelant la méthode ImageAttributes ::SetNoOp . Plus tard, vous pourrez rétablir le réglage des couleurs pour ce type d’objet en appelant la méthode ImageAttributes ::ClearNoOp . Par exemple, l’instruction suivante désactive l’ajustement des couleurs pour les pinceaux :
myImageAttributes.SetNoOp(ColorAdjustTypeBrush);
L’instruction suivante rétablit l’ajustement de couleur de pinceau qui était en place avant l’appel à ImageAttributes ::SetNoOp :
myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);
Exemples
L’exemple suivant crée un objet Image à partir d’un fichier .emf. Le code crée également un objet ImageAttributes . L’appel ImageAttributes ::SetColorMatrix définit la matrice d’ajustement de couleur de pinceau de cet objet ImageAttributes en une matrice qui convertit le rouge en vert.
Le code appelle DrawImage trois fois, chaque fois en passant l’adresse de l’objet Image et l’adresse de l’objet ImageAttributes . Lorsque l’image est dessinée la première fois, tout le rouge peint par des pinceaux est converti en vert. (Le rouge dessiné par les stylos n’est pas modifié.) Avant que l’image ne soit dessinée la deuxième fois, le code appelle la méthode ImageAttributes ::SetNoOp de l’objet ImageAttributes . Ainsi, lorsque l’image est dessinée la deuxième fois, aucun ajustement de couleur n’est appliqué aux pinceaux. Avant que l’image ne soit dessinée pour la troisième fois, le code appelle la méthode ImageAttributes ::ClearNoOp , qui rétablit les paramètres de réglage de la couleur du pinceau. Ainsi, lorsque l’image est dessinée pour la troisième fois, tout le rouge peint par les pinceaux est converti en vert.
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);
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP, Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | gdiplusimageattributes.h (incluez Gdiplus.h) |
Bibliothèque | Gdiplus.lib |
DLL | Gdiplus.dll |