掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フォームを透過するには? (ID:75688)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いくつかの方法があります。 ひとつは、AlphaBlendというAPIを使うこと。 Windows98からあるAPIだそうで、これを使えば非クライアント領域以外は透明にできるそうです。 ただ、使いかたは分からないです。自分で探してくださいとしか…。 もうひとつは、ウィンドウメッセージで、WM_ERASEBKGNDというメッセージがあって、ここでフォームを書きなおしているようです。 たいして、WM_ICONERASEBKGNDというメッセージもあるんですけど、 これは壁紙を描画するものだそうです(通常はいつ送られるんでしょうね^^;)。 なので、サブクラス化して、WM_ERASEBKGNDのメッセージが送られてきたら、 WM_ICONERASEBKGNDにおきかえてしまうと、フォームの背景のかわりに、壁紙が描画されます。 ただ、これだと画面が動いても再描画されないので、WM_MOVEとかも調べる必要があるとか…。 あとひとつは、おなじくWM_ERASEBKGNDが送られてきたらそれを隠す方法。 (多分真後ろのフォームが見えると思います、多分ですけど…) あとひとつは、SetWindowRgnなどを使ってリージョンを使い、フォームを見えなくする方法。 (フォーム自体のイベントは発生しなくなります) あとあと、いったん自分のフォームを消して、真後ろの画像を自分のフォームにコピーするとか。いろいろ方法があります。 SetWindowRgnとかを使う方法が一般的みたいですね、 たしかここのAPIサンプルにもあったと思います。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.