レイヤードウィンドウ

投稿日: 更新日:

以前、アルファ値付きのウィンドウを作りたくて、
リージョンではなくレイヤードウィンドウについて色々調べてたのですが、
なんかうまくいかずに、結局HSPは32bitのウィンドウではなくて24bitのウィンドウのために、
アルファ値付きは不可能なんだと勝手に決めつけ断念していました。
で、昨日あたりからまた調べだして、UpdateLayeredWindowを使えばいいことが判明。
駄目もとで、一度HSPで作ってみようと頑張ったら完成しましたヾ(*ΦωΦ)ノ ヒャッホゥ
32bitのDIBとかは、すぽいと君のBITMAPのコピー処理の時に勉強してたので、そこらへんを流用。
何とか動いたんだけど、プログラム的にはちょっと心配(゜-゜*;)
しかしゲームとかと違って、Windowsプログラムはソース自体は短いのに理解するまでが大変ですね。(;´▽`A“
ちなみに、ただ単に透過色指定のSetLayeredWindowAttributesを利用したレイヤードウィンドウや、リージョンウィンドウと比べると
やっぱり、半透明の値をしっかりもっているので、UpdateLayeredWindowで作ったウィンドウはめっちゃきれい。v(‘▽^*)♪
↑下の方は、ディザリング処理と言うか、灰色の中間色が透過されないためギザギザしている。L(゜□゜)」オーマイガ!
とりあえず、モジュール化して公開してみたのでよかったら使ってください(^o^)丿
placearkモジュールレイヤードウィンドウ総合モジュールね^^ ~( ̄△ ̄~)(~ ̄△ ̄)~勝手にこんな大それた名前を^^;
ところでWindows2000にGetLayeredWindowAttributesがないのはちょっと・・・。
広告

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中