Klasa CPalette
Hermetyzuje paletę kolorów systemu Windows.
Składnia
class CPalette : public CGdiObject
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CPalette::CPalette | Tworzy obiekt bez dołączonej CPalette palety systemu Windows. Aby można było go użyć, należy zainicjować CPalette obiekt za pomocą jednej z funkcji składowych inicjowania. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CPalette::AnimatePalette | Zamienia wpisy na palecie logicznej identyfikowane CPalette przez obiekt. Aplikacja nie musi aktualizować obszaru klienta, ponieważ system Windows mapuje nowe wpisy na paletę systemową natychmiast. |
CPalette::CreateHalftonePalette | Tworzy paletę półtonów dla kontekstu urządzenia i dołącza ją do CPalette obiektu. |
CPalette::CreatePalette | Tworzy paletę kolorów systemu Windows i dołącza ją do CPalette obiektu. |
CPalette::FromHandle | Zwraca wskaźnik do CPalette obiektu, gdy dany uchwyt do obiektu palety systemu Windows. |
CPalette::GetEntryCount | Pobiera liczbę wpisów palety w palecie logicznym. |
CPalette::GetNearestPaletteIndex | Zwraca indeks wpisu na palecie logicznej, który najlepiej pasuje do wartości koloru. |
CPalette::GetPaletteEntries | Pobiera szereg wpisów palety w palecie logicznym. |
CPalette::ResizePalette | Zmienia rozmiar palety logicznej określonej przez CPalette obiekt na określoną liczbę wpisów. |
CPalette::SetPaletteEntries | Ustawia wartości kolorów RGB i flagi w zakresie wpisów na palecie logicznej. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CPalette::operator HPALETTE | Zwraca wartość HPALETTE dołączoną do elementu CPalette . |
Uwagi
Paleta udostępnia interfejs między aplikacją a urządzeniem wyjściowym koloru (takim jak urządzenie wyświetlane). Interfejs umożliwia aplikacji pełne wykorzystanie możliwości kolorów urządzenia wyjściowego bez poważnego zakłócania kolorów wyświetlanych przez inne aplikacje. System Windows używa palety logicznej aplikacji (listy potrzebnych kolorów) i palety systemowej (która definiuje dostępne kolory) w celu określenia używanych kolorów.
Obiekt CPalette
udostępnia funkcje składowe do manipulowania paletą, do której odwołuje się obiekt. Skonstruuj CPalette
obiekt i użyj jego funkcji członkowskich, aby utworzyć rzeczywistą paletę, obiekt interfejsu urządzenia graficznego (GDI) oraz manipulować jego wpisami i innymi właściwościami.
Aby uzyskać więcej informacji na temat korzystania z programu CPalette
, zobacz Obiekty graficzne.
Hierarchia dziedziczenia
CPalette
Wymagania
Nagłówek: afxwin.h
CPalette::AnimatePalette
Zamienia wpisy na palecie logicznej dołączonej CPalette
do obiektu.
void AnimatePalette(
UINT nStartIndex,
UINT nNumEntries,
LPPALETTEENTRY lpPaletteColors);
Parametry
nStartIndex
Określa pierwszy wpis w palecie, który ma być animowany.
nNumEntries
Określa liczbę wpisów w palecie, które mają być animowane.
lpPaletteColors
Wskazuje pierwszy element członkowski tablicy struktur PALETTEENTRY , aby zastąpić wpisy palety zidentyfikowane przez nStartIndex i nNumEntries.
Uwagi
Gdy aplikacja wywołuje AnimatePalette
metodę , nie musi aktualizować obszaru klienta, ponieważ system Windows mapuje nowe wpisy na paletę systemową natychmiast.
Funkcja AnimatePalette
zmieni tylko wpisy z flagą PC_RESERVED ustawioną w odpowiednim palPaletteEntry
elemencie struktury LOGPALETTE , która jest dołączona do CPalette
obiektu. Aby uzyskać więcej informacji na temat tej struktury, zobacz LOGPALETTE w zestawie WINDOWS SDK.
CPalette::CPalette
CPalette
Tworzy obiekt.
CPalette();
Uwagi
Obiekt nie ma dołączonej palety, dopóki nie zostanie wywołana, CreatePalette
aby ją dołączyć.
CPalette::CreateHalftonePalette
Tworzy paletę półtonów dla kontekstu urządzenia.
BOOL CreateHalftonePalette(CDC* pDC);
Parametry
PDC
Identyfikuje kontekst urządzenia.
Wartość zwracana
Różne od zera, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Aplikacja powinna utworzyć paletę półtonów, gdy tryb rozciągania kontekstu urządzenia jest ustawiony na HALFTONE. Paleta półtonu logicznego zwrócona przez funkcję składową CreateHalftonePalette powinna zostać wybrana i zrealizowana w kontekście urządzenia, zanim zostanie wywołana funkcja CDC::StretchBlt lub StretchDIBits .
Zobacz zestaw Windows SDK, aby uzyskać więcej informacji o CreateHalftonePalette
systemach i StretchDIBits
.
CPalette::CreatePalette
Inicjuje CPalette
obiekt, tworząc paletę kolorów logicznych systemu Windows i dołączając go do CPalette
obiektu.
BOOL CreatePalette(LPLOGPALETTE lpLogPalette);
Parametry
lpLogPalette
Wskazuje strukturę LOGPALETTE, która zawiera informacje o kolorach w palecie logicznej.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Aby uzyskać więcej informacji na temat LOGPALETTE
struktury, zobacz zestaw Windows SDK.
CPalette::FromHandle
Zwraca wskaźnik do CPalette
obiektu, gdy dany uchwyt do obiektu palety systemu Windows.
static CPalette* PASCAL FromHandle(HPALETTE hPalette);
Parametry
hPalette
Uchwyt do palety kolorów GDI systemu Windows.
Wartość zwracana
Wskaźnik do CPalette
obiektu, jeśli się powiedzie; w przeciwnym razie wartość NULL.
Uwagi
CPalette
Jeśli obiekt nie jest jeszcze dołączony do palety systemu Windows, zostanie utworzony i dołączony obiekt tymczasowyCPalette
. Ten obiekt tymczasowy CPalette
jest prawidłowy tylko do następnego czasu bezczynności aplikacji w pętli zdarzeń, w którym wszystkie tymczasowe obiekty graficzne są usuwane. Innymi słowy, obiekt tymczasowy jest prawidłowy tylko podczas przetwarzania jednego komunikatu okna.
CPalette::GetEntryCount
Wywołaj tę funkcję składową, aby pobrać liczbę wpisów w danej palecie logicznej.
int GetEntryCount();
Wartość zwracana
Liczba wpisów w palecie logicznej.
CPalette::GetNearestPaletteIndex
Zwraca indeks wpisu w palecie logicznej, który najlepiej pasuje do określonej wartości koloru.
UINT GetNearestPaletteIndex(COLORREF crColor) const;
Parametry
crColor
Określa kolor, który ma być dopasowany.
Wartość zwracana
Indeks wpisu w palecie logicznej. Wpis zawiera kolor, który najbardziej prawie pasuje do określonego koloru.
CPalette::GetPaletteEntries
Pobiera szereg wpisów palety w palecie logicznym.
UINT GetPaletteEntries(
UINT nStartIndex,
UINT nNumEntries,
LPPALETTEENTRY lpPaletteColors) const;
Parametry
nStartIndex
Określa pierwszy wpis w palecie logicznej, który ma zostać pobrany.
nNumEntries
Określa liczbę wpisów w palecie logicznej do pobrania.
lpPaletteColors
Wskazuje tablicę struktur danych PALETTEENTRY w celu odbierania wpisów palety. Tablica musi zawierać co najmniej tyle struktur danych, jak określono przez nNumEntries.
Wartość zwracana
Liczba wpisów pobranych z palety logicznej; 0, jeśli funkcja nie powiodła się.
CPalette::operator HPALETTE
Użyj tego operatora, aby pobrać dołączony uchwyt GDI systemu CPalette
Windows obiektu.
operator HPALETTE() const;
Wartość zwracana
W przypadku powodzenia dojście do obiektu GDI systemu Windows reprezentowanego CPalette
przez obiekt ; w przeciwnym razie wartość NULL.
Uwagi
Ten operator jest operatorem rzutowania, który obsługuje bezpośrednie użycie obiektu HPALETTE.
Aby uzyskać więcej informacji na temat korzystania z obiektów graficznych, zobacz artykuł Obiekty graficzne w zestawie Windows SDK.
CPalette::ResizePalette
Zmienia rozmiar palety logicznej dołączonej do CPalette
obiektu na liczbę wpisów określonych przez nNumEntries.
BOOL ResizePalette(UINT nNumEntries);
Parametry
nNumEntries
Określa liczbę wpisów na palecie po zmianie rozmiaru.
Wartość zwracana
Bezzerowe, jeśli paleta została pomyślnie zmieniona; w przeciwnym razie 0.
Uwagi
Jeśli aplikacja wywołuje wywołanie ResizePalette
w celu zmniejszenia rozmiaru palety, wpisy pozostałe w zmienionej palecie pozostaną niezmienione. Jeśli aplikacja wywołuje ResizePalette
rozszerzenie palety, dodatkowe wpisy palety są ustawione na (czerwone, zielone i niebieskie wartości są wszystkie 0), a flagi dla wszystkich dodatkowych wpisów są ustawione na 0.
Aby uzyskać więcej informacji na temat interfejsu API ResizePalette
systemu Windows, zobacz ResizePalette w zestawie Windows SDK.
CPalette::SetPaletteEntries
Ustawia wartości kolorów RGB i flagi w zakresie wpisów na palecie logicznej.
UINT SetPaletteEntries(
UINT nStartIndex,
UINT nNumEntries,
LPPALETTEENTRY lpPaletteColors);
Parametry
nStartIndex
Określa pierwszy wpis w palecie logicznej, który ma zostać ustawiony.
nNumEntries
Określa liczbę wpisów w palecie logicznej, które mają być ustawione.
lpPaletteColors
Wskazuje tablicę struktur danych PALETTEENTRY w celu odbierania wpisów palety. Tablica musi zawierać co najmniej tyle struktur danych, jak określono przez nNumEntries.
Wartość zwracana
Liczba wpisów ustawionych na palecie logicznej; 0, jeśli funkcja nie powiodła się.
Uwagi
Jeśli paleta logiczna jest zaznaczona w kontekście urządzenia, gdy aplikacja wywołuje SetPaletteEntries
metodę , zmiany nie zostaną zastosowane, dopóki aplikacja nie wywoła cdC::RealizePalette.
Aby uzyskać więcej informacji, zobacz PALETTEENTRY w zestawie Windows SDK.
Zobacz też
Przykład MFC DIBLOOK
Klasa CGdiObject
Wykres hierarchii
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries