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

Voir aussi

Bitmap

ColorAdjustType

Image

ImageAttributes

ImageAttributes ::Reset

ImageAttributes ::SetNoOp

ImageAttributes ::SetToIdentity

Metafile

Recolorisation