フォームの色を指定して透明化するには

解決


ぐーり  2002-07-16 02:58:04  No: 75838

フォームの色が赤のときは赤の部分を、青色のときは青の部分を、
と言ったようなかんじで、指定した色の部分(フォームを含む)を
透過させたいのですが、なにか方法をご存知の方いらっしゃいませんか?
(タイトルバーは残しておきたいです。)


Say  2002-07-16 18:09:16  No: 75839

マスク作ってリージョン作って
合成する、ってことになるかと思います。


ぐーり  2002-07-17 18:55:19  No: 75840

Sayさん回答ありがとうございます。
リージョン作ってフォームを消す方法はできたのですが、
できればマスク画像を使わずに、やりたいのです。
色を指定して、フォームも、フォーム上のオブジェクトも
同じ色の部分は透過できる方法があるように聞いたのですが…。
何かご存知の情報があれば教えていただきたいと思います。


Say  2002-07-17 22:33:32  No: 75841

不定形部分合成をやる以上、何らかのマスクは必要です。

もちろん、透過色指定ということなら、
マスク画像を自動生成することは可能ですが・・・。

また、OS限定ならレイヤードウィンドウを使う、という手も
ありますが、マスク処理をシステムがやってくれている
というだけで、マスク不要というわけではないです。


たかみちえ  URL  2002-07-18 03:57:13  No: 75842

マスク画像の自動生成。
  たしかどんな色を背景にしても、うまくマスク画像を作れる方法というのが、どこかにのってましたよん。
(作成言語はVB)
場所は忘れちゃいましたけど…。

  検索サイトで、探してみては?


けみ  2002-07-18 18:22:53  No: 75843

SetLayeredWindowAttributes
はどうですか。

>色を指定して、フォームも、フォーム上のオブジェクトも
>同じ色の部分は透過できる方法があるように聞いたのですが…。
ということができるか分かりませんが、色を指定して透過する
ことはできるみたいです。

Windows NT/2000:Windows 2000
Windows 95/98:対応していません
となっているみたいですけど。


けみ  2002-07-18 18:26:48  No: 75844

すいません。上記はSayさんの回答と同じです。


ぐーり  2002-07-23 19:38:04  No: 75845

回答ありがとうございました。
Bitblt関数を使用して、仮のマスク画像を作って、透過することはできました。
ただ、MDIの子フォームで使用したのですが、どうも親フォームも透過してしまい、バックのデスクトップが見えてしまいました。
なので、ひとまずSetWindowRgnを使って対処することにしました。
どうもありがとうございました。


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

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






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