Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
透過されたpng画像
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=255#CommentId1801
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2009/1/23 07:18:47
MyTrashCan の動作を見る限り、レイヤード ウィンドウ(※1)が使われているようですが、
これは API を使わねばならないので、難易度が高いですよ。
.NET でレイヤード ウィンドウといえば、Form.TransparecyKey / Form.Opacity プロパティが
該当しますが、これらのプロパティは SetLayeredWindowAttributes API (※2)に相当する物であり、
今回のように部分的に透過率を変えたいような場合には利用できません。
同じ画面上に透過度の違うエリアを作りたい場合は、UpdateLayeredWindow API (※3)を
使わねばなりませんが、これに相当する機能は .NET Framework には用意されていないようなので、
Declare ステートメント(もしくは、DllImport 属性)を用いて、この API を
直接呼び出すコードを書く必要があります (※4, ※5)。
-----------------------------------------------------------------
(※1)レイヤード ウィンドウという言葉を聞いた事が無ければ、下記を参照してください。
http://msdn.microsoft.com/ja-jp/library/ms997507.aspx
(※2) SetLayeredWindowAttributes API の仕様について。
http://msdn.microsoft.com/ja-jp/library/cc411043.aspx
(※3) UpdateLayeredWindow API の仕様について。
http://msdn.microsoft.com/ja-jp/library/cc364847.aspx
(※4) C# での実装サンプル。main.exe を起動し、そこに png 画像をドロップしてみましょう。
http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx
(※5) VB での実装ヒント。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=41225&forum=7