<Return[S]><Top>

SelectPalette

Declare Function Api_SelectPalette& Lib "gdi32" Alias "SelectPalette" (ByVal hDC&, ByVal hPalette&, ByVal bForceBackground&)

Declare Function SelectPalette Lib "gdi32" Alias "SelectPalette" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long

デバイスコンテキストで、指定された論理パレットを選択する。

パラメータ

hdc
    デバイスコンテキストのハンドルを指定する。
hpal
    デバイスコンテキストで選択するべき論理パレットのハンドルを指定する。
bForceBackground
    論理パレットを背景パレットにするかどうかを指定する。TRUE を指定すると、RealizePalette 関数は、実現可能な方法のうち最善の方法

    で、論理パレットを、既に物理パレット内に存在する色へマップする。これはいつでも実行されることであり、たとえ実体化するべきパレットを

    保持するウィンドウが、アクティブなフォーカスのない(つまりバックグラウンド)スレッドに所属している場合でも、このようなマッピングが実行され

    る。
    FALSE を指定すると、RealizePalette 関数は、アプリケーションがフォアグラウンドにあるときは論理パレットをデバイスパレットへコピーし、

    バックグラウンドにあるときは論理パレットを現在の物理パレットへマップする。(hdc パラメータでメモリデバイスコンテキストを指定した場合、こ

    のパラメータは無視される。)

戻り値
    関数が成功すると、デバイスコンテキストの以前の論理パレットのハンドルが返る。
    関数が失敗すると、NULL が返る。
    Windows NT/2000:拡張エラー情報を取得するには、 関数を使う。

解説
    デバイスがパレット操作をサポートしているかどうかを調べるには、 GetDeviceCaps 関数で値 RASTERCAPS を指定する。
    アプリケーションは、複数のデバイスコンテキストで 1 つの論理パレットを選択することもできる。ただし、それらのデバイスコンテキストに互換

    性があることが条件である。互換性がない場合、このような選択を行うと、SelectPalette は失敗する。他のデバイスコンテキストと互換性

    があるデバイスコンテキストを作成するには、他のデバイスコンテキストをパラメータとして指定して、 CreateCompatibleDC を呼び出す。1 つ

    の論理パレットを複数のデバイスコンテキストで選択した場合、論理パレットに変更を加えると、そのパレットが選択されているすべてのデバイ

    スコンテキストがその影響を受ける。
    最上位レベルウィンドウが複数の子ウィンドウを備えていて、各子ウィンドウが自らのパレットを実体化する場合にのみ、アプリケーションは

    bForceBackground パラメータを TRUE に設定して SelectPalette 関数を呼び出すことができる。しかし、自らのパレットを実体化する必要

    のあるただ 1 つの子ウィンドウだけが、bForceBackground を TRUE に設定しなければならない。他の子ウィンドウは、このパラメータを

    FALSE に設定しなければならない。