PictureBoxの透過


Matsu  2002-12-05 22:49:23  No: 105615  IP: [192.*.*.*]

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

編集 削除
oran  2002-12-06 00:45:20  No: 105616  IP: [192.*.*.*]

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

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

編集 削除
Matsu  2002-12-06 02:05:04  No: 105617  IP: [192.*.*.*]

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

編集 削除
まるお  2002-12-06 17:29:56  No: 105618  IP: [192.*.*.*]

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

編集 削除
Matsu  2002-12-07 19:21:55  No: 105619  IP: [192.*.*.*]

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

編集 削除
たかみちえ  URL  2002-12-07 22:47:06  No: 105620  IP: [192.*.*.*]

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

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

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

編集 削除
Matsu  2002-12-10 14:21:37  No: 105621  IP: [192.*.*.*]

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

編集 削除