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 にアタッチされている HPALETTE を返します CPalette

解説

パレットは、アプリケーションとカラー出力デバイス (ディスプレイ デバイスなど) の間のインターフェイスを提供します。 このインターフェイスにより、アプリケーションは、他のアプリケーションによって表示される色に深刻な干渉を与えることなく、出力デバイスの色機能を最大限に活用できます。 Windows では、アプリケーションの論理パレット (必要な色の一覧) とシステム パレット (使用可能な色を定義) を使用して、使用される色を決定します。

CPaletteオブジェクトは、オブジェクトによって参照されるパレットを操作するためのメンバー関数を提供します。 オブジェクトを CPalette 構築し、そのメンバー関数を使用して、実際のパレット、グラフィックス デバイス インターフェイス (GDI) オブジェクトを作成し、そのエントリとその他のプロパティを操作します。

使用のCPalette詳細については、「グラフィック オブジェクト」を参照してください

継承階層

CObject

CGdiObject

CPalette

必要条件

ヘッダー: afxwin.h

CPalette::AnimatePalette

オブジェクトにアタッチされている論理パレットのエントリを CPalette 置き換えます。

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

パラメーター

nStartIndex
アニメーション化するパレットの最初のエントリを指定します。

nNumEntries
アニメーション化するパレット内のエントリの数を指定します。

lpPaletteColors
PALETT Enterprise Edition NTRY 構造体の配列の最初のメンバーをポイントして、nStartIndex および nNumEntries識別されるパレット エントリを置き換えます。

解説

アプリケーションが呼び出 AnimatePaletteすとき、Windows は新しいエントリをシステム パレットにすぐにマップするため、クライアント領域を更新する必要はありません。

この関数はAnimatePalette、オブジェクトにアタッチされている LOGPALETTE 構造体の対応するpalPaletteEntryメンバーに PC_REStandard Edition RVED フラグが設定されたCPaletteエントリのみを変更します。 この構造の詳細については、Windows SDK の LOGPALETTE を参照してください。

CPalette::CPalette

CPalette オブジェクトを構築します。

CPalette();

解説

オブジェクトをアタッチするために呼び出 CreatePalette すまで、オブジェクトにはパレットがアタッチされていません。

CPalette::CreateHalftonePalette

デバイス コンテキストのハーフトーン パレットを作成します。

BOOL CreateHalftonePalette(CDC* pDC);

パラメーター

pDC
デバイス コンテキストを識別します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

デバイス コンテキストのストレッチ モードが HALFTONE に設定されている場合、アプリケーションはハーフトーン パレットを作成する必要があります。 次に、CreateHalftonePalette メンバー関数によって返される論理ハーフトーン パレットを選択し、CDC::StretchBlt または StretchDIBits 関数が呼び出される前にデバイス コンテキストに認識する必要があります。

の詳細CreateHalftonePaletteStretchDIBitsについては、Windows SDK を参照してください。

CPalette::CreatePalette

CPalette Windows 論理カラー パレットを作成し、オブジェクトにアタッチして、オブジェクトをCPalette初期化します。

BOOL CreatePalette(LPLOGPALETTE lpLogPalette);

パラメーター

lpLogPalette
論理パレット内の 色に関する情報を含む LOGPALETTE 構造体をポイントします。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

構造の詳細については、Windows SDK を LOGPALETTE 参照してください。

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
パレット 項目を受け取る PALETT Enterprise Edition NTRY データ構造の配列を指します。 配列には、nNumEntries指定された数以上のデータ構造が含まれている必要があります。

戻り値

論理パレットから取得されたエントリの数。関数が失敗した場合は 0。

CPalette::operator HPALETTE

CPalette オブジェクトのアタッチされた Windows GDI ハンドルを取得するには、この演算子を使用します。

operator HPALETTE() const;

戻り値

成功した場合は、オブジェクトによって CPalette 表される Windows GDI オブジェクトへのハンドル。それ以外の場合は NULL。

解説

この演算子は、HPALETTE オブジェクトの直接使用をサポートするキャスト演算子です。

グラフィック オブジェクトの使用の詳細については、Windows SDK のグラフィック オブジェクトに関する記事を参照してください。

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
パレット 項目を受け取る PALETT Enterprise Edition NTRY データ構造の配列を指します。 配列には、nNumEntries指定された数以上のデータ構造が含まれている必要があります。

戻り値

論理パレットで設定されたエントリの数。関数が失敗した場合は 0。

解説

アプリケーションの呼び出し時に論理パレットがデバイス コンテキストに選択されている場合、アプリケーションが CDC::RealizePalette を呼び出SetPaletteEntriesすまで変更は有効になりません。

詳細については、Windows SDK の「PALETT Enterprise Edition NTRY」を参照してください

関連項目

MFC サンプル DIBLOOK
CGdiObject クラス
階層図
CPalette::GetPaletteEntries
CPalette::SetPaletteEntries