Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

任意形状ダイアログのギザギザは解消可能でしょうか?

1 view
Skip to first unread message

HIKARU SAYAMA

unread,
Aug 11, 2005, 10:50:07 PM8/11/05
to
お世話になります。佐山です。

# 多言語にまたがるのでここに投稿させていただきます。

よく見かけるソースでRegionを使って
ダイアログの形状を変えるものがありますが、
結果ふちがギザギザになってしまいます。

たとえばメディアプレイヤーなんかのように、
丸くてもふちがギザギザで無いウインドウはどのように作るのでしょうか?
またRegionを用いた形状変更時に可能なのでしょうか?

# ググって見たのですがうまく見つけられなかったので投稿いたします

ご存知の方アドバイスいただければ幸いです。

よろしくお願いします。

--
== HIKARU SAYAMA ==
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Takeshi SHIGIHARA

unread,
Aug 12, 2005, 1:13:21 AM8/12/05
to
HIKARU SAYAMA wrote:
> たとえばメディアプレイヤーなんかのように、
> 丸くてもふちがギザギザで無いウインドウはどのように作るのでしょうか?

私ならば、グラフィックデザイナさんがRegionの基となるBMPファイルを作る
ときに最初から'アンチエイリアス'を掛けておいてもらうようにします。
で、googleすれば大量に出るとは思いますが、そのBMPファイルを1pixelごとに
Rgnに変換していきます。これで人間の見た目には、ジャギーのないキレイな
ふちができるはず。
BMPファイルを読み取ったときに、プログラム的にアンチエイリアシングする
方法もあるかも知れませんが、それは、ユーザがスキンを作成するとかのアプリ
でもない限り、あまり使う場面もないんじゃないかな、と思います。


----- Takeshi SHIGIHARA
cyg...@tka.att.ne.jp
cyg...@po.jah.ne.jp -----
うまい、早い、安い/2つだけ選べ--RFC1925.

Takeshi SHIGIHARA

unread,
Aug 12, 2005, 1:24:57 AM8/12/05
to
Takeshi SHIGIHARA wrote:
> 私ならば、グラフィックデザイナさんがRegionの基となるBMPファイルを作る
> ときに最初から'アンチエイリアス'を掛けておいてもらうようにします。

しまった。

ちょっと実験してみたところ、いくら最初のアンチエイリアスを掛けておこうと
意味が無い。アンチエイリアスは、その「背景の画像」に対して色のボカシを
行うようなものだから、背景が変わる状態では意味が無かったですね。

すると、元となる画像に加えてフチのあたりに「透明度」を示す画像でも作り、
それを使ってWM_PAINTとかWM_NCPAINTとかで実際にRgnに対してpaintを行う時に
背景の画像を得てから透明度を加えて演算して、、とかかなあ。
こうなると、自力でアンチエイリアシングするプログラムとなんら変わらない
手間が掛かりそうです。

HIKARU SAYAMA

unread,
Aug 23, 2005, 4:01:09 AM8/23/05
to
お世話になります。佐山です。

# 盆休み明けです。遅くなりましてすみません。

アドバイスありがとうございました。
画像でカバーできるなら・・・と思いましたが、
そうもいかないんですね。

# 自力アンチエイリアス実装は今ちょっと無理で・・・

今後の参考にさせていただきます。
ありがとうございました。

0 new messages