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


かんとく  2009-05-21 05:19:01  No: 101758

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

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

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

よろしくお願いします。


K.J.K.  2009-05-21 05:54:20  No: 101759

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加