tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: ユーザーコントロールの背景を透明にすると文字がおかしくなる
投稿日: 2017/02/10(Fri) 16:30
投稿者魔界の仮面弁士
> コントロールのBackStyleプロパティを透明に設定されるとUserControl、LabelのBackStyleを透明にしています。

たとえば、このような表示になりますね。
http://www.vb-user.net/junk/replySamples/2017.02.10.14.49/Label1.png


> すると、LabelのCaptionに設定された文字が一部欠けた状態になって表示されます。

https://www.microsoft.com/japan/msdn/vs_previous/vbasic/TechInfo/kb/vb5kbidx/KBBug.htm
https://www.microsoft.com/japan/msdn/vs_previous/vbasic/TechInfo/kb/vb6kbidx/KBBug.htm
上記の
 179052 [VB] 透過コントロール上の透過ラベルの Caption が表示されない
に相当する障害ですね。

現在は該当ページが見えなくなっているようですので、Visual Studio 付属の
MSDN Library で、改正前の文書番号「J046164」「Q179052」を検索してみてください。


> 背景を透明にしても文字をキレイに表示する方法はないでしょうか。

有効な対策は無いと認識しています。

フォームをキャプチャして、それを UserControl の不透明背景に転写するか、
もしくは、フォーム自体に直接描画するなどの対処にするか、あるいは
UserControl は用いず、Label を直接 Form に貼るようにして、
Label の座標を調整して中央寄せのように見せかけるぐらいでしょうか。

その他、UserControl の MaskPicture と MaskColor を使うと言う手がありますが、
透過処理の都合上、TrueType/ClearType フォントのアンチエイリアスに対応できないため、
「透明」背景を使う方法だと、文字のジャギーが残ってしまい、綺麗な表示にはなりません。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。