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
詳細については、「グラフィック オブジェクト」を参照してください。
継承階層
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 関数が呼び出される前にデバイス コンテキストに認識する必要があります。
の詳細CreateHalftonePalette
StretchDIBits
については、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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示