分享方式:


CPalette 類別

封裝 Windows 調色盤。

語法

class CPalette : public CGdiObject

成員

公用建構函式

名稱 描述
CPalette::CPalette CPalette建構沒有附加 Windows 調色盤的 物件。 您必須先使用其中一個初始化成員函式來初始化 CPalette 物件,才能使用它。

公用方法

名稱 描述
CPalette::AnimatePalette 取代物件所 CPalette 識別之邏輯選擇區中的專案。 應用程式不需要更新其工作區,因為 Windows 會立即將新項目對應至系統選擇區。
CPalette::CreateHalftonePalette 為裝置內容建立半色調調色盤,並將它附加至 CPalette 物件。
CPalette::CreatePalette 建立 Windows 調色盤,並將它附加至 CPalette 物件。
CPalette::FromHandle 當指定 Windows 調色盤物件的句柄時,傳回物件的指標 CPalette
CPalette::GetEntryCount 擷取邏輯調色盤中的調色盤項目數目。
CPalette::GetNearestPaletteIndex 傳回最符合色彩值之邏輯調色盤中專案的索引。
CPalette::GetPaletteEntries 擷取邏輯調色盤中的調色盤專案範圍。
CPalette::ResizePalette 將物件所 CPalette 指定的邏輯調色盤大小變更為指定的項目數目。
CPalette::SetPaletteEntries 設定邏輯調色盤中專案範圍的 RGB 色彩值和旗標。

公用運算子

名稱 描述
CPalette::operator HPALETTE 傳回附加至的 CPaletteHPALETTE。

備註

調色盤提供應用程式與色彩輸出裝置之間的介面(例如顯示裝置)。 介面可讓應用程式充分利用輸出裝置的色彩功能,而不會嚴重干擾其他應用程式所顯示的色彩。 Windows 會使用應用程式的邏輯調色盤(所需色彩清單)和系統調色盤(定義可用色彩)來判斷所使用的色彩。

CPalette物件會提供成員函式來操作 物件所參考的調色盤。 CPalette建構 物件,並使用其成員函式來建立實際調色盤、圖形裝置介面 (GDI) 物件,以及操作其專案和其他屬性。

如需使用 CPalette的詳細資訊,請參閱 圖形物件

繼承階層架構

CObject

CGdiObject

CPalette

需求

標題: afxwin.h

CPalette::AnimatePalette

取代附加至 CPalette 對象的邏輯選擇區中的專案。

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

參數

nStartIndex
指定要產生動畫效果之調色盤中的第一個專案。

nNumEntries
指定要產生動畫效果之調色盤中的項目數。

lpPaletteColors
指向PALETTEENTRY結構數位的第一個成員,以取代 nStartIndexnNumEntries識別的調色盤專案。

備註

當應用程式呼叫 AnimatePalette時,不需要更新其工作區,因為 Windows 會立即將新專案對應至系統選擇區。

AnimatePalette式只會變更附加至 CPalette 物件之LOGPALETTE結構的對應palPaletteEntry成員中設定PC_RESERVED旗標的專案。 如需此結構的詳細資訊,請參閱 Windows SDK 中的 LOGPALETTE。

CPalette::CPalette

建構 CPalette 物件。

CPalette();

備註

在您呼叫 CreatePalette 附加調色盤之前,對象沒有附加調色盤。

CPalette::CreateHalftonePalette

建立裝置內容的半色調調色盤。

BOOL CreateHalftonePalette(CDC* pDC);

參數

pDC
識別裝置內容。

傳回值

如果函式成功則為非零,否則為 0。

備註

當裝置內容的延展模式設定為 HALFTONE 時,應用程式應該建立半色調調色盤。 接著,在呼叫 CDC::StretchBlt 或 StretchDIBits 函式之前,應該先選取 CreateHalftonePalette 成員函式所傳回的邏輯半色調調色盤,並將其實現到裝置內容中。

如需 和 StretchDIBits的詳細資訊CreateHalftonePalette,請參閱 Windows SDK。

CPalette::CreatePalette

CPalette建立 Windows 邏輯調色盤並將其附加至 CPalette 物件,以初始化 物件。

BOOL CreatePalette(LPLOGPALETTE lpLogPalette);

參數

lpLogPalette
指向 LOGPALETTE 結構,其中包含邏輯調色盤中色彩的相關信息。

傳回值

如果成功則為非零;否則為 0。

備註

如需結構的詳細資訊, LOGPALETTE 請參閱 Windows SDK。

CPalette::FromHandle

當指定 Windows 調色盤物件的句柄時,傳回物件的指標 CPalette

static CPalette* PASCAL FromHandle(HPALETTE hPalette);

參數

hPalette
Windows GDI 調色盤的句柄。

傳回值

如果成功, CPalette 則為 物件的指標,否則為 NULL。

備註

CPalette如果物件尚未附加至 Windows 調色盤,則會建立並附加暫存CPalette物件。 這個暫存 CPalette 物件只有在下次應用程式在其事件迴圈中有閑置時間為止才有效,此時會刪除所有暫存圖形物件。 換句話說,暫存物件只有在處理一個視窗訊息時才有效。

CPalette::GetEntryCount

呼叫這個成員函式,以擷取指定邏輯選擇區中的項目數目。

int GetEntryCount();

傳回值

邏輯選擇區中的項目數。

CPalette::GetNearestPaletteIndex

傳回最符合指定色彩值之邏輯調色盤中專案的索引。

UINT GetNearestPaletteIndex(COLORREF crColor) const;

參數

crColor
指定要比對的色彩。

傳回值

邏輯選擇區中專案的索引。 專案包含最接近符合指定色彩的色彩。

CPalette::GetPaletteEntries

擷取邏輯調色盤中的調色盤專案範圍。

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

參數

nStartIndex
指定要擷取之邏輯選擇區中的第一個專案。

nNumEntries
指定要擷取之邏輯選擇區中的項目數目。

lpPaletteColors
指向PALETTEENTRY數據結構的陣列,以接收調色盤專案。 陣列必須至少包含 nNumEntries指定的數據結構。

傳回值

從邏輯選擇區擷取的項目數;如果函式失敗,則為 0。

CPalette::operator HPALETTE

使用此運算子取得 物件的附加 Windows GDI 句柄 CPalette

operator HPALETTE() const;

傳回值

如果成功,則為 物件所 CPalette 代表之 Windows GDI 物件的句柄,否則為 NULL。

備註

此運算子是轉換運算符,可支援直接使用 HPALETTE 物件。

如需使用圖形對象的詳細資訊,請參閱 Windows SDK 中的圖形物件一文

CPalette::ResizePalette

將附加至 CPalette 對象的邏輯選擇區大小變更為 nNumEntries指定的項目數目。

BOOL ResizePalette(UINT nNumEntries);

參數

nNumEntries
指定調色盤中重設大小之後的項目數。

傳回值

如果調色盤已成功重設大小,則為非零;否則為 0。

備註

如果應用程式呼叫 ResizePalette 以減少調色盤的大小,則重設大小調色盤中剩餘的專案會保持不變。 如果應用程式呼叫 ResizePalette 以放大調色盤,其他調色盤項目會設定為黑色(紅色、綠色和藍色值全部為0),而所有其他專案的旗標會設定為0。

如需 Windows API ResizePalette的詳細資訊,請參閱 Windows SDK 中的 ResizePalette

CPalette::SetPaletteEntries

設定邏輯調色盤中專案範圍的 RGB 色彩值和旗標。

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

參數

nStartIndex
指定要設定之邏輯選擇區中的第一個專案。

nNumEntries
指定要設定之邏輯選擇區中的項目數目。

lpPaletteColors
指向PALETTEENTRY數據結構的陣列,以接收調色盤專案。 陣列必須至少包含 nNumEntries指定的數據結構。

傳回值

邏輯選擇區中設定的項目數;如果函式失敗,則為 0。

備註

如果在應用程式呼叫 SetPaletteEntries時將邏輯選擇區選取到裝置內容中,則變更在應用程式呼叫 CDC::RealizePalette 之前不會生效。

如需詳細資訊,請參閱 Windows SDK 中的 PALETTEENTRY

另請參閱

MFC 範例 DIBLOOK
CGdiObject 類別
階層架構圖表
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries