ImageAttributes::ClearNoOp-Methode (gdiplusimageattributes.h)
Die ImageAttributes::ClearNoOp-Methode löscht die NoOp-Einstellung für eine angegebene Kategorie.
Syntax
Status ClearNoOp(
[in, optional] ColorAdjustType type
);
Parameter
[in, optional] type
Typ: ColorAdjustType
Element der ColorAdjustType-Enumeration , das die Kategorie angibt, für die die NoOp-Einstellung gelöscht wird. Der Standardwert ist ColorAdjustTypeDefault.
Rückgabewert
Typ: Status
Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .
Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.
Hinweise
Sie können die Farbanpassung für einen bestimmten Objekttyp deaktivieren, indem Sie die ImageAttributes::SetNoOp-Methode aufrufen. Später können Sie die Farbanpassung für diesen Objekttyp wiederherstellen, indem Sie die ImageAttributes::ClearNoOp-Methode aufrufen. Die folgende Anweisung deaktiviert beispielsweise die Farbanpassung für Pinsel:
myImageAttributes.SetNoOp(ColorAdjustTypeBrush);
Mit der folgenden Anweisung wird die Anpassung der Pinselfarbe, die vor dem Aufruf von ImageAttributes::SetNoOp vorgenommen wurde, wiederhergestellt:
myImageAttributes.ClearNoOp(ColorAdjustTypeBrush);
Beispiele
Im folgenden Beispiel wird ein Image-Objekt aus einer .emf-Datei erstellt. Der Code erstellt auch ein ImageAttributes-Objekt . Der ImageAttributes::SetColorMatrix-Aufruf legt die Farbanpassungsmatrix des ImageAttributes-Objekts auf eine Matrix fest, die Rot in Grün konvertiert.
Der Code ruft DrawImage dreimal auf, wobei jedes Mal die Adresse des Image-Objekts und die Adresse des ImageAttributes-Objekts übergeben wird. Wenn das Bild zum ersten Mal gezeichnet wird, werden alle rot gezeichneten Pinsel in Grün konvertiert. (Das von Stiften gezeichnete Rot wird nicht geändert.) Bevor das Bild zum zweiten Mal gezeichnet wird, ruft der Code die ImageAttributes::SetNoOp-Methode des ImageAttributes-Objekts auf . Wenn das Bild also beim zweiten Mal gezeichnet wird, wird keine Farbanpassung auf Pinsel angewendet. Bevor das Bild zum dritten Mal gezeichnet wird, ruft der Code die ImageAttributes::ClearNoOp-Methode auf, mit der die Einstellungen für die Farbanpassung des Pinsels wiederhergestellt werden. Wenn das Bild also zum dritten Mal gezeichnet wird, werden alle rot gezeichneten Pinsel in Grün konvertiert.
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);
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP, Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | gdiplusimageattributes.h (include Gdiplus.h) |
Bibliothek | Gdiplus.lib |
DLL | Gdiplus.dll |