C#でのコントロールの透過について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みなと

C#でのコントロールの透過について

#1

投稿記事 by みなと » 4年前

フォームの背景を透明にした状態で、ラベルの背景も半透明にしたいです。
つまり、デスクトップに重ねれば、ラベルの部分ではデスクトップが透けて見えるようにしたいです。

しかし、やってみると、ラベルの背景はフォームの透過色になってしまいます。
どうすればよいでしょうか。

Visual Studio C#でやっています。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: C#でのコントロールの透過について

#2

投稿記事 by YuO » 4年前

みなと さんが書きました:フォームの背景を透明にした状態で、ラベルの背景も半透明にしたいです。
みなと さんが書きました:しかし、やってみると、ラベルの背景はフォームの透過色になってしまいます。
みなと さんが書きました:つまり、デスクトップに重ねれば、ラベルの部分ではデスクトップが透けて見えるようにしたいです。
これ自体は,TransparencyKeyを使う方法が一番簡単にできます。
オフトピック
WS_EX_LAYEREDにあるように,Windows 8以降では子ウィンドウもWS_EX_LAYEREDをサポートします。
このため,CreateParams.ExStyle プロパティにWS_EX_LAYEREDを追加し,SetLayeredWindowAttributes 関数を呼び出すようにすれば,半透明のコントロールは作成可能だと思います。
そこまでしてやる必要があるのか,という疑問は出てきますが……。

閉鎖

“C言語何でも質問掲示板” へ戻る