PictureBoxの透過


Matsu  2002-12-06 07:49:23  No: 105615

PictureBoxの背景を透過する方法はあるのでしょうか?
Property(やWEB)を調べた限りでは見当たらなかったのですが.
よろしくお願いします.


oran  2002-12-06 09:45:20  No: 105616

.NET ならBackColor プロパティを System.Drawing.Color.Transparent に設定するとできます。ただし透明度設定ではないので完全に透過。しかも下にあるコントロールは見えない。

VB6 だと、Label コントロールの BackStyle プロパティを使用して、ラベルの背景を透明にするかどうかを指定しているとの事ですが・・・
しかしこれってラベルだけ?


Matsu  2002-12-06 11:05:04  No: 105617

お返事ありがとうございます.
環境を書いていなくてすみません,VB6です.
確かにLabelですとできるのですが,PictureBoxにはそれらしきプロパティが無いですね,,


まるお  2002-12-07 02:29:56  No: 105618

はじめまして。
imageコントロールではだめですか?
的違いだったらごめんなさい。


Matsu  2002-12-08 04:21:55  No: 105619

お返事ありがとうございます.
Lineメソッド等で描画を行っているので,imageコントロールではだめなんです.
描画していない部分を透過にしたいのですが,,


たかみちえ  URL  2002-12-08 07:47:06  No: 105620

Delphiでのことで、VBでうまく使えるかどうかは不明な上、
すごく面倒なことになる(かつ、安全でない)ことになりますけど、
・PictureBoxをサブクラス化し、WM_EraseBkGndを無視するようにする。
・APIのSetWindowLongで、拡張ウィンドウスタイルに、"WS_EX_TRANSPARENT"を追加する。
  これで透過できるかな・・・と思います。いちおうDelphiでは、これで透明化します。
もしかしたら下のはなくても平気かも。

  描画は上にグラフィックコントロールをおいても平気だったので、多分平気です。

  あとは、DelphiのTGraphicControlがやってることと同じこと(デバイスコンテキストだけを作り、それをフォーム上に表示する)をすればできそうですけどね…。


Matsu  2002-12-10 23:21:37  No: 105621

お返事いただいてありがたいのですが,VB不慣れなためやり方がよく分かりません,,
単純な図形でしたので,結局形に合わせて複数個のPictureBoxを作ることで
解決しました.(解決していませんが,,)
ありがとうございました m()m


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

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






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