Udostępnij za pośrednictwem


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

Obiekt CObject

CGdiObject

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 AnimatePalettemetodę , 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 ResizePalettesystemu 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 SetPaletteEntriesmetodę , 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