Sdílet prostřednictvím


CPalette – třída

Zapouzdřuje paletu barev Windows.

Syntaxe

class CPalette : public CGdiObject

Členové

Veřejné konstruktory

Jméno popis
CPalette::CPalette CPalette Vytvoří objekt bez připojené palety Windows. Před použitím je nutné inicializovat CPalette objekt jednou z inicializačních členských funkcí.

Veřejné metody

Jméno popis
CPalette::AnimatePalette Nahradí položky v logické paletě identifikované objektem CPalette . Aplikace nemusí aktualizovat svou klientskou oblast, protože Systém Windows mapuje nové položky na systémovou paletu okamžitě.
CPalette::CreateHalftonePalette Vytvoří polotónovou paletu pro kontext zařízení a připojí ji k objektu CPalette .
CPalette::CreatePalette Vytvoří paletu barev Windows a připojí ji k objektu CPalette .
CPalette::FromHandle Vrátí ukazatel na CPalette objekt při zadání úchytu k objektu palety Windows.
CPalette::GetEntryCount Načte počet položek palety v logické paletě.
CPalette::GetNearestPaletteIndex Vrátí index položky v logické paletě, která nejvíce odpovídá hodnotě barvy.
CPalette::GetPaletteEntries Načte rozsah položek palety v logické paletě.
CPalette::ResizePalette Změní velikost logické palety určené objektem CPalette na zadaný počet položek.
CPalette::SetPaletteEntries Nastaví hodnoty barev RGB a příznaky v rozsahu položek v logické paletě.

Veřejné operátory

Jméno popis
CPalette::operator HPALETTE Vrátí HPALETTE připojenou k sadě CPalette.

Poznámky

Paleta poskytuje rozhraní mezi aplikací a barevným výstupním zařízením (například zobrazovacím zařízením). Rozhraní umožňuje aplikaci plně využít možnosti barev výstupního zařízení, aniž by vážně zasahovaly do barev zobrazených jinými aplikacemi. Systém Windows používá logickou paletu aplikace (seznam potřebných barev) a systémovou paletu (která definuje dostupné barvy) k určení použitých barev.

Objekt CPalette poskytuje členské funkce pro manipulaci s paletou, na kterou objekt odkazuje. CPalette Vytvoříte objekt a použijete jeho členské funkce k vytvoření skutečné palety, objektu rozhraní grafického zařízení (GDI) a manipulaci s jeho položkami a dalšími vlastnostmi.

Další informace o použití CPalettenaleznete v tématu Grafické objekty.

Hierarchie dědičnosti

Objekt CObject

CGdiObject

CPalette

Požadavky

Hlavička: afxwin.h

CPalette::AnimatePalette

Nahradí položky v logické paletě připojené k objektu CPalette .

void AnimatePalette(
    UINT nStartIndex,
    UINT nNumEntries,
    LPPALETTEENTRY lpPaletteColors);

Parametry

nStartIndex
Určuje první položku v paletě, která se má animovat.

nNumEntries
Určuje počet položek v paletě, které se mají animovat.

lpPaletteColors
Odkazuje na první člen pole struktur PALETTEENTRY nahradit položky palety identifikované nStartIndexa nNumEntries.

Poznámky

Když aplikace zavolá AnimatePalette, nemusí aktualizovat svou klientskou oblast, protože Systém Windows mapuje nové položky na systémovou paletu okamžitě.

Funkce AnimatePalette změní pouze položky s příznakem PC_RESERVED nastaveným v odpovídajícím palPaletteEntry členu struktury LOGPALETTE , která je připojena k objektu CPalette . Další informace o této struktuře najdete v tématu LOGPALETTE v sadě Windows SDK.

CPalette::CPalette

CPalette Vytvoří objekt.

CPalette();

Poznámky

Objekt nemá připojenou paletu, dokud ho nezavoláte CreatePalette , abyste ho připojili.

CPalette::CreateHalftonePalette

Vytvoří polotónovou paletu pro kontext zařízení.

BOOL CreateHalftonePalette(CDC* pDC);

Parametry

Pdc
Identifikuje kontext zařízení.

Vrácená hodnota

Nenulové, pokud je funkce úspěšná; jinak 0.

Poznámky

Aplikace by měla vytvořit polotónovou paletu, pokud je režim roztažení kontextu zařízení nastaven na HALFTONE. Logická polotónová paleta vrácená členovou funkcí CreateHalftonePalette by měla být vybrána a realizována do kontextu zařízení před zavoláním funkce CDC::StretchBlt nebo StretchDIBits .

Další informace o CreateHalftonePalette sadě Windows SDK a StretchDIBits.

CPalette::CreatePalette

Inicializuje CPalette objekt vytvořením logické palety barev Systému Windows a jeho připojením k objektu CPalette .

BOOL CreatePalette(LPLOGPALETTE lpLogPalette);

Parametry

lpLogPalette
Odkazuje na strukturu LOGPALETTE , která obsahuje informace o barvách v logické paletě.

Vrácená hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Další informace o struktuře najdete v LOGPALETTE sadě Windows SDK.

CPalette::FromHandle

Vrátí ukazatel na CPalette objekt při zadání úchytu k objektu palety Windows.

static CPalette* PASCAL FromHandle(HPALETTE hPalette);

Parametry

hPalette
Úchyt palety barev GDI systému Windows.

Vrácená hodnota

Ukazatel na CPalette objekt, pokud je úspěšný; jinak NULL.

Poznámky

CPalette Pokud objekt ještě není připojený k paletě Windows, vytvoří se dočasný CPalette objekt a připojí se. Tento dočasný CPalette objekt je platný pouze do okamžiku, kdy aplikace ve smyčce událostí nečiní, kdy se odstraní všechny dočasné grafické objekty. Jinými slovy, dočasný objekt je platný pouze během zpracování jedné zprávy okna.

CPalette::GetEntryCount

Voláním této členské funkce načtete počet položek v dané logické paletě.

int GetEntryCount();

Vrácená hodnota

Počet položek v logické paletě

CPalette::GetNearestPaletteIndex

Vrátí index položky v logické paletě, která nejvíce odpovídá zadané hodnotě barvy.

UINT GetNearestPaletteIndex(COLORREF crColor) const;

Parametry

crColor
Určuje barvu, která se má shodovat.

Vrácená hodnota

Index položky v logické paletě Položka obsahuje barvu, která téměř odpovídá zadané barvě.

CPalette::GetPaletteEntries

Načte rozsah položek palety v logické paletě.

UINT GetPaletteEntries(
    UINT nStartIndex,
    UINT nNumEntries,
    LPPALETTEENTRY lpPaletteColors) const;

Parametry

nStartIndex
Určuje první položku v logické paletě, která se má načíst.

nNumEntries
Určuje počet položek v logické paletě, které se mají načíst.

lpPaletteColors
Odkazuje na pole datových struktur PALETTEENTRY pro příjem položek palety. Pole musí obsahovat alespoň tolik datových struktur, kolik určuje nNumEntries.

Vrácená hodnota

Počet položek načtených z logické palety; 0, pokud funkce selhala.

CPalette::operator HPALETTE

Pomocí tohoto operátoru získáte připojený popisovač GDI windows objektu CPalette .

operator HPALETTE() const;

Vrácená hodnota

V případě úspěchu je popisovač objektu GDI systému Windows reprezentovaný objektem CPalette , jinak NULL.

Poznámky

Tento operátor je operátor přetypování, který podporuje přímé použití objektu HPALETTE.

Další informace o používání grafických objektů naleznete v článku Grafické objekty v sadě Windows SDK.

CPalette::ResizePalette

Změní velikost logické palety připojené k objektu CPalette na počet položek určených nNumEntries.

BOOL ResizePalette(UINT nNumEntries);

Parametry

nNumEntries
Určuje počet položek v paletě po změně velikosti.

Vrácená hodnota

Nenulové, pokud se paleta úspěšně změnila; jinak 0.

Poznámky

Pokud volání ResizePalette aplikace, která zmenšuje velikost palety, zůstanou položky ve změně velikosti palety beze změny. Pokud aplikace volá ResizePalette zvětšení palety, další položky palety jsou nastaveny na černou (červené, zelené a modré hodnoty jsou všechny 0) a příznaky pro všechny další položky jsou nastaveny na 0.

Další informace o rozhraní API ResizePalettesystému Windows naleznete v tématu ResizePalette v sadě Windows SDK.

CPalette::SetPaletteEntries

Nastaví hodnoty barev RGB a příznaky v rozsahu položek v logické paletě.

UINT SetPaletteEntries(
    UINT nStartIndex,
    UINT nNumEntries,
    LPPALETTEENTRY lpPaletteColors);

Parametry

nStartIndex
Určuje první položku v logické paletě, která se má nastavit.

nNumEntries
Určuje počet položek v logické paletě, které se mají nastavit.

lpPaletteColors
Odkazuje na pole datových struktur PALETTEENTRY pro příjem položek palety. Pole musí obsahovat alespoň tolik datových struktur, kolik určuje nNumEntries.

Vrácená hodnota

Počet položek nastavených v logické paletě; 0, pokud funkce selhala.

Poznámky

Pokud je logická paleta vybrána do kontextu zařízení při volání SetPaletteEntriesaplikace , změny se neprojeví, dokud aplikace zavolá CDC::RealizePalette.

Další informace naleznete v tématu PALETTEENTRY v sadě Windows SDK.

Viz také

MFC – ukázka DIBLOOK
CGdiObject – třída
Graf hierarchie
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries