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 CPaletteHPALETTE 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 CPalettefinden Sie unter Graphic Objects.

Vererbungshierarchie

CObject

CGdiObject

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 StretchDIBitsSie 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 ResizePalettefinden 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