CPalette – třída
Zapouzdřuje paletu barev Windows.
Syntaxe
class CPalette : public CGdiObject
Členové
Veřejné konstruktory
Název | 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
Název | 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
Název | 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í CPalette
naleznete v tématu Grafické objekty.
Hierarchie dědičnosti
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é nStartIndex a 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í.
Návratová 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ě.
Návratová 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.
Návratová 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();
Návratová 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.
Návratová 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.
Návratová 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;
Návratová 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.
Návratová 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 ResizePalette
systé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.
Návratová 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í SetPaletteEntries
aplikace , 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