CPalette Class

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

封裝 Windows 調色盤。

class CPalette : public CGdiObject  

公用建構函式

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

公用方法

名稱說明
Cpalette:: Animatepalette取代項目中所識別的邏輯調色盤CPalette物件。 應用程式並沒有更新其工作區,因為 Windows 對應立即將新的項目變成系統調色盤。
CPalette::CreateHalftonePalette建立裝置內容的半色調調色盤並將它附加CPalette物件。
CPalette::CreatePalette建立 Windows 調色盤並將它附加CPalette物件。
CPalette::FromHandle若要將指標傳回CPalette物件控制代碼給 Windows 調色盤物件時。
CPalette::GetEntryCount擷取調色盤邏輯調色盤中的項目的數目。
CPalette::GetNearestPaletteIndex最接近的色彩值的邏輯調色盤中傳回的項目索引。
CPalette::GetPaletteEntries擷取各種調色盤邏輯調色盤中的項目。
CPalette::ResizePalette變更大小所指定的邏輯調色盤CPalette物件指定的項目數目。
CPalette::SetPaletteEntries設定邏輯調色盤中的項目範圍中的 RGB 色彩值和旗標。

公用運算子

名稱說明
CPalette::operator HPALETTE傳回HPALETTE附加至CPalette

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

ACPalette物件提供成員函式的物件操作調色盤參考。 建構CPalette物件,並將其成員函式來建立實際的調色盤,圖形裝置介面 (GDI) 物件,並管理其項目和其他屬性。

如需有關使用CPalette,請參閱圖形物件

CObject

CGdiObject

CPalette

標題: afxwin.h

取代附加至邏輯調色盤中的項目CPalette物件。

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

參數

nStartIndex
指定以動畫顯示調色盤中的第一個項目。

nNumEntries
以動畫顯示調色盤中指定的項目數。

lpPaletteColors
指向陣列的第一個成員PALETTEENTRY結構,以取代所識別的調色盤項目nStartIndexnNumEntries

備註

當應用程式呼叫AnimatePalette,它並沒有要更新其工作區,因為 Windows 對應立即將新的項目變成系統調色盤。

AnimatePalette函式只會變更的項目PC_RESERVED旗標設在對應palPaletteEntry成員LOGPALETTE結構連接至CPalette物件。 請參閱LOGPALETTE中Windows SDK如需有關此結構。

建構 CPalette 物件。

CPalette();

備註

物件會有任何附加的調色盤,直到您呼叫CreatePalette附加一個。

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

BOOL CreateHalftonePalette(CDC* pDC);

參數

pDC
識別的裝置內容。

傳回值

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

備註

當裝置內容的縮放模式設為應用程式應建立半色調調色盤半色調。 傳回邏輯半色調調色盤CreateHalftonePalette成員函式應該然後選取並放入裝置內容之前實現CDC::StretchBltstretchdibits 做函式呼叫。

請參閱Windows SDK如需詳細資訊CreateHalftonePalettestretchdibits 做

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

BOOL CreatePalette(LPLOGPALETTE lpLogPalette);

參數

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

傳回值

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

備註

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

若要將指標傳回CPalette物件控制代碼給 Windows 調色盤物件時。

static CPalette* PASCAL FromHandle(HPALETTE hPalette);

參數

hPalette
Windows GDI 調色盤控制代碼。

傳回值

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

備註

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

呼叫此成員函式擷取指定的邏輯調色盤中的項目數。

int GetEntryCount();

傳回值

邏輯調色盤中的項目數。

最接近指定的色彩值的邏輯調色盤中傳回的項目索引。

UINT GetNearestPaletteIndex(COLORREF crColor) const;  

參數

crColor
指定要比對的色彩。

傳回值

邏輯調色盤中的項目索引。 項目包含最幾乎符合指定的色彩的色彩。

擷取各種調色盤邏輯調色盤中的項目。

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

參數

nStartIndex
指定要擷取邏輯調色盤中的第一個項目。

nNumEntries
要擷取邏輯調色盤中指定的項目數。

lpPaletteColors
指向陣列PALETTEENTRY資料結構,以接收調色盤項目。 陣列必須包含至少盡所指定的資料結構nNumEntries

傳回值

從邏輯調色盤; 擷取的項目數目0,表示失敗的函式。

使用這個運算子來取得附加的 Windows GDI 控制代碼的CPalette物件。

operator HPALETTE() const;  

傳回值

如果成功,Windows GDI 物件的控制代碼所代表CPalette物件; 否則NULL

備註

這位操作員便轉型運算子,支援直接使用HPALETTE物件。

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

變更大小,連接到的邏輯調色盤CPalette物件所指定的項目數nNumEntries

BOOL ResizePalette(UINT nNumEntries);

參數

nNumEntries
已調整大小之後,調色盤中指定的項目數。

傳回值

非零,如果已成功調整調色盤;否則為 0。

備註

如果應用程式呼叫ResizePalette可縮小的調色盤,剩餘調整調色盤中的項目是不變。 如果應用程式呼叫ResizePalette擴大調色盤,其他調色盤項目已設定為黑色 (紅色、 綠色和藍色值是所有的 0),以及所有其他項目的旗標會設為 0。

如需有關 Windows API ResizePalette,請參閱ResizePalette中Windows SDK。

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

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

參數

nStartIndex
設定邏輯調色盤中,指定第一個項目。

nNumEntries
若要設定邏輯調色盤中指定的項目數。

lpPaletteColors
指向陣列PALETTEENTRY資料結構,以接收調色盤項目。 陣列必須包含至少盡所指定的資料結構nNumEntries

傳回值

設定邏輯調色盤; 中的項目數0,表示失敗的函式。

備註

當應用程式呼叫時,如果要邏輯調色盤選取放入裝置內容SetPaletteEntries,變更將不會生效,直到應用程式呼叫CDC::RealizePalette

如需有關 Windows 結構PALETTEENTRY,請參閱PALETTEENTRY中Windows SDK。

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

顯示: