HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0420
内おろちデスクトップマスコットのような4解決


内おろち

リンク

2006/4/20(Thu) 17:56:18|NO.438

こんにちは

デスクトップマスコットみたいなのを作ろうとしてます

透明のウィンドウに背景が透過したキャラの画像を表示したいのに
非表示ウィンドウじゃまったく見えないし、普通のウィンドウじゃ変だし

どうすれば思ったようになりますか?

もしかしてHSPじゃこういうの無理なの?



この記事に返信する


Yuki

リンク

2006/4/20(Thu) 18:25:12|NO.439

こんにちは。
普通デスクトップマスコットは透明なウィンドウに絵を表示しているのではなく、
絵の形に切り抜いたウィンドウを表示しています。

Windows では「リージョン」と言うものを使ってキャラクタのように複雑な図形を表現し、それをウィンドウに当てはめることで複雑な形のウィンドウを作ることが出来ます。

昔ちょっとやった記憶があるのでHSPでもリージョンが扱えるプラグインがあったと思います。



kz3

リンク

2006/4/20(Thu) 18:34:15|NO.440

>透明のウィンドウに背景が透過したキャラの画像を表示したいのに
>非表示ウィンドウじゃまったく見えないし、普通のウィンドウじゃ変だし

Win32 API関数を使って「リージョンウィンドウ」を作ってやれば可能です。

方法としては、
1:自分でリージョン関連のAPIを勉強して使う。
2:誰かが公開しているかも知れないAPIをラップさせたリージョンモジュールを使う。
  誰が公開しているかは知りません。探せばあるかもしれません。
3:リージョンプラグインを使う( Yukiさんのレスをうけて追加 )

2番に近いものでHSP開発wikiに「不定形リージョン」というページがありました。
そのページで画像の点(0,0)の色を背景色として、背景色を切り取る形でリージョンウィンドウを作れる
モジュールが載っていました。

ソースも公開されているので自分でちょこっと書き直せば任意の点(x,y)を背景色とすることもできますね。
公開されているソース( モジュール )を使用するというよりは、
ソースを参考に勉強する、といった感じのサイトだと思います。

# HSP開発wiki => http://hspwiki.nm.land.to/



ぜろ

リンク

2006/4/20(Thu) 18:50:41|NO.441

Win32APIというのにほんのちょっぴり補足。
OSが限定されてしまうのでなんともいえませんが、Win2000/XP限定ならば
リージョン関数以外でも指定色を透明化したりウィンドウを半透明化できるAPIもあります。



内おろち

リンク

2006/4/21(Fri) 17:04:47|NO.446

モジュール使うことにします
ありがとうございました



ONION software Copyright 1997-2023(c) All rights reserved.