CPalette クラス
Windows のカラー パレットをカプセル化します。
構文
class CPalette : public CGdiObject
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CPalette::CPalette | Windows パレットがアタッチされていない CPalette オブジェクトを構築します。 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
の使用方法の詳細については、「Graphic オブジェクト」を参照してください。
継承階層
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 以外を返します。それ以外の場合は 0 を返します。
解説
デバイス コンテキストのストレッチ モードが HALFTONE に設定されている場合、アプリケーションはハーフトーン パレットを作成する必要があります。 その後、 CreateHalftonePalette メンバー関数によって返される論理ハーフトーン パレットを選択し、 CDC::StretchBlt または StretchDIBits 関数が呼び出される前に、デバイス コンテキストに実現する必要があります。
CreateHalftonePalette
とStretchDIBits
の詳細については、Windows SDK を参照してください。
CPalette::CreatePalette
Windows 論理カラー パレットを作成し、CPalette
オブジェクトにアタッチして、CPalette
オブジェクトを初期化します。
BOOL CreatePalette(LPLOGPALETTE lpLogPalette);
パラメーター
lpLogPalette
論理パレットの色に関する情報を含む LOGPALETTE 構造体を指します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
LOGPALETTE
構造の詳細については、Windows SDK を参照してください。
CPalette::FromHandle
Windows パレット オブジェクトへのハンドルが指定されている場合は、 CPalette
オブジェクトへのポインターを返します。
static CPalette* PASCAL FromHandle(HPALETTE hPalette);
パラメーター
hPalette
Windows GDI カラー パレットへのハンドル。
戻り値
成功した場合は CPalette
オブジェクトへのポインター。それ以外の場合は NULL。
解説
CPalette
オブジェクトがまだ Windows パレットにアタッチされていない場合は、一時的なCPalette
オブジェクトが作成されてアタッチされます。 この一時 CPalette
オブジェクトは、アプリケーションがイベント ループで次にアイドル時間を過ぎ、その時点ですべての一時グラフィック オブジェクトが削除されるまでのみ有効です。 つまり、一時オブジェクトは、1 つのウィンドウ メッセージの処理中にのみ有効です。
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
CPalette
オブジェクトのアタッチされた Windows GDI ハンドルを取得するには、この演算子を使用します。
operator HPALETTE() const;
戻り値
成功した場合は、 CPalette
オブジェクトによって表される Windows GDI オブジェクトへのハンドル。それ以外の場合は NULL。
解説
この演算子は、HPALETTE オブジェクトの直接使用をサポートするキャスト演算子です。
グラフィック オブジェクトの使用の詳細については、Windows SDK の Graphic Objects に関する記事を参照してください。
CPalette::ResizePalette
CPalette
オブジェクトにアタッチされている論理パレットのサイズを、nNumEntries で指定されたエントリの数に変更します。
BOOL ResizePalette(UINT nNumEntries);
パラメーター
nNumEntries
サイズを変更した後のパレット内のエントリの数を指定します。
戻り値
パレットのサイズが正常に変更された場合は 0 以外。それ以外の場合は 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