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 | 傳回附加至的 CPalette HPALETTE。 |
備註
調色盤提供應用程式與色彩輸出裝置之間的介面(例如顯示裝置)。 介面可讓應用程式充分利用輸出裝置的色彩功能,而不會嚴重干擾其他應用程式所顯示的色彩。 Windows 會使用應用程式的邏輯調色盤(所需色彩清單)和系統調色盤(定義可用色彩)來判斷所使用的色彩。
CPalette
物件會提供成員函式來操作 物件所參考的調色盤。 CPalette
建構 物件,並使用其成員函式來建立實際調色盤、圖形裝置介面 (GDI) 物件,以及操作其專案和其他屬性。
如需使用 CPalette
的詳細資訊,請參閱 圖形物件。
繼承階層架構
CPalette
需求
標題: afxwin.h
CPalette::AnimatePalette
取代附加至 CPalette
對象的邏輯選擇區中的專案。
void AnimatePalette(
UINT nStartIndex,
UINT nNumEntries,
LPPALETTEENTRY lpPaletteColors);
參數
nStartIndex
指定要產生動畫效果之調色盤中的第一個專案。
nNumEntries
指定要產生動畫效果之調色盤中的項目數。
lpPaletteColors
指向PALETTEENTRY結構數位的第一個成員,以取代 nStartIndex 和 nNumEntries 所識別的調色盤專案。
備註
當應用程式呼叫 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