色の深度をコントロール毎に設定するには?


かんとく  2009-05-20 20:19:01  No: 101758  IP: [192.*.*.*]

お世話になっております。
VB6,XPです。

デスクトップ上で右クリックして画面のプロパティを開き、画面の色を設定することが出来ますが、その設定にかかわらずに、
例えばPicture1の色の深度を16ビットに固定する、ということは出来ますか。

Picture1の限定が無理なら、そのForm全体とか、そのEXE全体でもかまいません。

よろしくお願いします。

編集 削除
K.J.K.  2009-05-20 20:54:20  No: 101759  IP: [192.*.*.*]

PictureBox の色深度は(プライマリ)ディスプレイの設定に依存します
ので、アプローチを変える必要があるのでは。

PictureBox の場合の色深度情報は、hDC 側ではなく、そこで SelectObject
されている hBitmap 側にあります。で、通常のアプローチとしては、
PictureBox を使わず、全部自力で API 関数を用いるなどして 色深度が
16bits な hDIBSection を用意し、それを用意した hMemDC に SelectObject
させて、それに対して描画用の関数を呼び出す、ということになるでしょう。

編集 削除