CPalette-Klasse
Kapselt eine Windows-Farbpalette.
Syntax
class CPalette : public CGdiObject
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CPalette::CPalette | Erstellt ein CPalette Objekt ohne angefügte Windows-Palette. Sie müssen das CPalette Objekt mit einer der Initialisierungselementfunktionen initialisieren, bevor es verwendet werden kann. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CPalette::AnimatePalette | Ersetzt Einträge in der logischen Palette, die durch das CPalette Objekt identifiziert wird. Die Anwendung muss den Clientbereich nicht aktualisieren, da Windows die neuen Einträge sofort der Systempalette zuordnet. |
CPalette::CreateHalftonePalette | Erstellt eine Halbtonpalette für den Gerätekontext und fügt sie an das CPalette Objekt an. |
CPalette::CreatePalette | Erstellt eine Windows-Farbpalette und fügt sie an das CPalette Objekt an. |
CPalette::FromHandle | Gibt einen Zeiger auf ein CPalette Objekt zurück, wenn ein Handle auf ein Windows-Palettenobjekt übergeben wird. |
CPalette::GetEntryCount | Ruft die Anzahl der Paletteneinträge in einer logischen Palette ab. |
CPalette::GetNearestPaletteIndex | Gibt den Index des Eintrags in der logischen Palette zurück, der am ehesten mit einem Farbwert übereinstimmt. |
CPalette::GetPaletteEntries | Ruft einen Bereich von Paletteneinträgen in einer logischen Palette ab. |
CPalette::ResizePalette | Ändert die Größe der logischen Palette, die durch das CPalette Objekt angegeben wird, in die angegebene Anzahl von Einträgen. |
CPalette::SetPaletteEntries | Legt RGB-Farbwerte und Flags in einem Bereich von Einträgen in einer logischen Palette fest. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
CPalette::operator HPALETTE | Gibt die an die CPalette HPALETTE angefügte HPALETTE zurück. |
Hinweise
Eine Palette stellt eine Schnittstelle zwischen einer Anwendung und einem Farbausgabegerät (z. B. einem Anzeigegerät) bereit. Die Schnittstelle ermöglicht es der Anwendung, die Farbfunktionen des Ausgabegeräts vollständig zu nutzen, ohne die von anderen Anwendungen angezeigten Farben stark zu beeinträchtigen. Windows verwendet die logische Palette der Anwendung (eine Liste der erforderlichen Farben) und die Systempalette (die verfügbare Farben definiert), um die verwendeten Farben zu bestimmen.
Ein CPalette
Objekt stellt Memberfunktionen zum Bearbeiten der Palette bereit, auf die das Objekt verweist. Erstellen Sie ein CPalette
Objekt, und verwenden Sie dessen Memberfunktionen, um die tatsächliche Palette, ein GDI-Objekt (Graphics Device Interface) zu erstellen und seine Einträge und andere Eigenschaften zu bearbeiten.
Weitere Informationen zur Verwendung CPalette
finden Sie unter Graphic Objects.
Vererbungshierarchie
CPalette
Anforderungen
Header: afxwin.h
CPalette::AnimatePalette
Ersetzt Einträge in der logischen Palette, die dem CPalette
Objekt zugeordnet ist.
void AnimatePalette(
UINT nStartIndex,
UINT nNumEntries,
LPPALETTEENTRY lpPaletteColors);
Parameter
nStartIndex
Gibt den ersten Eintrag in der Palette an, der animiert werden soll.
nNumEntries
Gibt die Anzahl der Einträge in der Palette an, die animiert werden sollen.
lpPaletteColors
Verweist auf das erste Element eines Arrays von PALETTEENTRY-Strukturen , um die durch nStartIndex und nNumEntries identifizierten Paletteneinträge zu ersetzen.
Hinweise
Wenn eine Anwendung aufruft AnimatePalette
, muss der Clientbereich nicht aktualisiert werden, da Windows die neuen Einträge sofort der Systempalette zuordnet.
Die AnimatePalette
Funktion ändert nur Einträge mit dem PC_RESERVED Flag, das im entsprechenden palPaletteEntry
Element der LOGPALETTE-Struktur festgelegt ist, die an das CPalette
Objekt angefügt ist. Weitere Informationen zu dieser Struktur finden Sie unter LOGPALETTE im Windows SDK.
CPalette::CPalette
Erstellt ein CPalette
-Objekt.
CPalette();
Hinweise
Das Objekt verfügt über keine angefügte Palette, bis Sie CreatePalette
eine anfügen.
CPalette::CreateHalftonePalette
Erstellt eine Halbtonpalette für den Gerätekontext.
BOOL CreateHalftonePalette(CDC* pDC);
Parameter
pDC
Identifiziert den Gerätekontext.
Rückgabewert
Ist ungleich null (0), wenn die Funktion erfolgreich ausgeführt wird, andernfalls null (0).
Hinweise
Eine Anwendung sollte eine Halbtonpalette erstellen, wenn der Stretchmodus eines Gerätekontexts auf HALFTONE festgelegt ist. Die logische Halbtonpalette, die von der CreateHalftonePalette-Memberfunktion zurückgegeben wird, sollte dann ausgewählt und im Gerätekontext realisiert werden, bevor die Funktion CDC::StretchBlt oder StretchDIBits aufgerufen wird.
Weitere Informationen zu CreateHalftonePalette
und zu den Themen finden StretchDIBits
Sie im Windows SDK.
CPalette::CreatePalette
Initialisiert ein CPalette
Objekt, indem eine logische Windows-Farbpalette erstellt und an das CPalette
Objekt angefügt wird.
BOOL CreatePalette(LPLOGPALETTE lpLogPalette);
Parameter
lpLogPalette
Verweist auf eine LOGPALETTE-Struktur , die Informationen zu den Farben in der logischen Palette enthält.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Weitere Informationen zur LOGPALETTE
Struktur finden Sie im Windows SDK.
CPalette::FromHandle
Gibt einen Zeiger auf ein CPalette
Objekt zurück, wenn ein Handle auf ein Windows-Palettenobjekt übergeben wird.
static CPalette* PASCAL FromHandle(HPALETTE hPalette);
Parameter
hPalette
Ein Handle für eine Windows GDI-Farbpalette.
Rückgabewert
Ein Zeiger auf ein CPalette
Objekt, falls erfolgreich; andernfalls NULL.
Hinweise
Wenn ein CPalette
Objekt noch nicht an die Windows-Palette angefügt ist, wird ein temporäres CPalette
Objekt erstellt und angefügt. Dieses temporäre CPalette
Objekt ist nur gültig, bis die Anwendung das nächste Mal leerlauf in der Ereignisschleife hat, zu dem zeitpunkt alle temporären Grafikobjekte gelöscht werden. Das temporäre Objekt ist also nur während der Verarbeitung einer Fenstermeldung gültig.
CPalette::GetEntryCount
Rufen Sie diese Memberfunktion auf, um die Anzahl der Einträge in einer bestimmten logischen Palette abzurufen.
int GetEntryCount();
Rückgabewert
Anzahl der Einträge in einer logischen Palette.
CPalette::GetNearestPaletteIndex
Gibt den Index des Eintrags in der logischen Palette zurück, der am ehesten mit dem angegebenen Farbwert übereinstimmt.
UINT GetNearestPaletteIndex(COLORREF crColor) const;
Parameter
crColor
Gibt die farbe an, die abgeglichen werden soll.
Rückgabewert
Der Index eines Eintrags in einer logischen Palette. Der Eintrag enthält die Farbe, die fast der angegebenen Farbe entspricht.
CPalette::GetPaletteEntries
Ruft einen Bereich von Paletteneinträgen in einer logischen Palette ab.
UINT GetPaletteEntries(
UINT nStartIndex,
UINT nNumEntries,
LPPALETTEENTRY lpPaletteColors) const;
Parameter
nStartIndex
Gibt den ersten Eintrag in der logischen Palette an, der abgerufen werden soll.
nNumEntries
Gibt die Anzahl der Einträge in der logischen Palette an, die abgerufen werden sollen.
lpPaletteColors
Verweist auf ein Array von PALETTEENTRY-Datenstrukturen , um die Paletteneinträge zu empfangen. Das Array muss mindestens so viele Datenstrukturen enthalten, wie durch nNumEntries angegeben.
Rückgabewert
Die Anzahl der Einträge, die aus der logischen Palette abgerufen wurden; 0, wenn die Funktion fehlgeschlagen ist.
CPalette::operator HPALETTE
Verwenden Sie diesen Operator, um das angefügte Windows GDI-Handle des CPalette
Objekts abzurufen.
operator HPALETTE() const;
Rückgabewert
Bei erfolgreicher Ausführung wird ein Handle für das Windows GDI-Objekt durch das CPalette
Objekt dargestellt; andernfalls NULL.
Hinweise
Dieser Operator ist ein Umwandlungsoperator, der die direkte Verwendung eines HPALETTE-Objekts unterstützt.
Weitere Informationen zur Verwendung von Grafikobjekten finden Sie im Artikel "Grafikobjekte " im Windows SDK.
CPalette::ResizePalette
Ändert die Größe der logischen Palette, die dem CPalette
Objekt zugeordnet ist, in die Anzahl der Einträge, die durch nNumEntries angegeben werden.
BOOL ResizePalette(UINT nNumEntries);
Parameter
nNumEntries
Gibt die Anzahl der Einträge in der Palette an, nachdem die Größe geändert wurde.
Rückgabewert
Nonzero, wenn die Größe der Palette erfolgreich geändert wurde; andernfalls 0.
Hinweise
Wenn eine Anwendung aufruft ResizePalette
, um die Größe der Palette zu verringern, bleiben die Einträge in der geänderten Palette unverändert. Wenn die Anwendung zum Vergrößern der Palette aufruft ResizePalette
, werden die zusätzlichen Paletteneinträge auf Schwarz festgelegt (die Werte rot, grün und blau sind alle 0), und die Kennzeichnungen für alle zusätzlichen Einträge sind auf 0 festgelegt.
Weitere Informationen zur Windows-API ResizePalette
finden Sie unter "ResizePalette " im Windows SDK.
CPalette::SetPaletteEntries
Legt RGB-Farbwerte und Flags in einem Bereich von Einträgen in einer logischen Palette fest.
UINT SetPaletteEntries(
UINT nStartIndex,
UINT nNumEntries,
LPPALETTEENTRY lpPaletteColors);
Parameter
nStartIndex
Gibt den ersten Eintrag in der logischen Palette an, der festgelegt werden soll.
nNumEntries
Gibt die Anzahl der Einträge in der logischen Palette an, die festgelegt werden sollen.
lpPaletteColors
Verweist auf ein Array von PALETTEENTRY-Datenstrukturen , um die Paletteneinträge zu empfangen. Das Array muss mindestens so viele Datenstrukturen enthalten, wie durch nNumEntries angegeben.
Rückgabewert
Die Anzahl der Einträge, die in der logischen Palette festgelegt sind; 0, wenn die Funktion fehlgeschlagen ist.
Hinweise
Wenn die logische Palette in einem Gerätekontext ausgewählt wird, wenn die Anwendung aufruftSetPaletteEntries
, werden die Änderungen erst wirksam, wenn die Anwendung CDC::RealizePalette aufruft.
Weitere Informationen finden Sie unter PALETTEENTRY im Windows SDK.
Siehe auch
MFC-Beispiel DIBLOOK
CGdiObject-Klasse
Hierarchiediagramm
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries