VB6ユーザーコントロール内からコンテナの背景色を取得するには?


あんず  2004-08-26 02:37:06  No: 85271

自作のユーザーコントロールを作成し、その中でそのコントロールが
貼り付けられたコンテナの背景色を取得したいのですができるでしょうか?

Unicodeが表示できるラベル風のユーザーコントロールを作成しているのですが、
LabelのBackStyleが透明なときと同様に透明にしたいのです。
ユーザーコントロールの上にUnicodeが表示可能なコントロールを配置しているため、ユーザーコントロール自身はBackStyleの設定ができるのですが、配置した
コントロールにBackStyleの設定がないため、背景色をコンテナを同じにしよう
と思っています。


魔界の仮面弁士  2004-08-26 05:44:25  No: 85272

> その中でそのコントロールが貼り付けられたコンテナの背景色を取得したいのですができるでしょうか?
フォームの背景色なら、AmbientオブジェクトのBackColorプロパティで得られます。
(AmbientChangeイベントも併用されると良いかと)

コンテナの背景色なら、ExtenderのContainerプロパティから、
BackColorを参照できるかも知れません。ただし、コンテナ側が
BackColorプロパティを実装していればの話ですけれども。

> LabelのBackStyleが透明なときと同様に透明にしたいのです。
マスクを指定した上で、BackStyleを透明に設定しておくとか。

> コントロールにBackStyleの設定がないため、
自作したUserControlに、BackStyleプロパティを実装すれば良いのでは。。。
(そういう事では無いのかな?)


あんず  2004-08-26 19:11:22  No: 85273

早速の返事ありがとうございます。
AmbientオブジェクトのBackColorプロパティと
ExtenderのContainerプロパティの両方でコンテナ背景色の
取得できることが確認できました。

>(AmbientChangeイベントも併用されると良いかと)

このイベントはコンテナとなるフォームの何かが変更されたとき
発生するのでしょうか?
この中で、BackColorプロパティが透明のときの処理を追加する
ということでしょうか?

>自作したUserControlに、BackStyleプロパティを実装すれば良いのでは。。。

実装しようと思ってやっているのですが、自作UserControl内の
コントロール(VS-FlexGrid)にBackStyleプロパティがなかったため
背景色取得を考えたのですが、もっと良い方法があるのでしょうか?
そのようなコントロールを透明にする場合、マスクをしたりすることで、
本当に透明にできるのでしょうか?

知識不足で申し訳ありませんが、お知恵をお貸しください。


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

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






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