[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/01/10(Tue) 23:26
投稿者名:はま
URL :
タイトル:
VB で 半透明(再質問)
TransparentBltを使って「透過的に」Bmpを転写すること
はできました。

長方形ではない、任意の多角形を透過的に塗りつぶす方法を
どなたかご存じではないでしょうか?

ご教授のほど、よろしくお願いします。

投稿時間:2006/01/11(Wed) 10:03
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: VB で 半透明(再質問)
> 長方形ではない、任意の多角形を透過的に塗りつぶす方法を
> どなたかご存じではないでしょうか?

(GDI)Metafile -> (GDI)Path -> (GDI)Regionと変換して、
多角形となる描画領域を生成してください。

投稿時間:2006/01/11(Wed) 11:54
投稿者名:はま
URL :
タイトル:
Re^2: VB で 半透明(再質問)
> (GDI)Metafile -> (GDI)Path -> (GDI)Regionと変換して、
> 多角形となる描画領域を生成してください。

回答、ありがとうございます。
よくわかりませんが、調べてみます。

投稿時間:2006/01/11(Wed) 19:48
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: VB で 半透明(再質問)
擬似的で良いのならば、単色(モノカラー)のマスク用のBitmapを
生成して、それをもとにして内側にはAlphaBlendしたものを、
外側には元の画像をそのまま利用し、それを再合成するとか。
# 境界線上・近辺の画質には問題が生じやすいですが。

投稿時間:2006/01/11(Wed) 23:43
投稿者名:はま
URL :
タイトル:
Re^2: VB で 半透明(再質問)
似たようなことで
ペン先を CreatePatternBrush(hMaskBmp) にて、モノクロームのビットマップ
を使って面塗りすると、言われたようなことができるらしいのですが

hhttp://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/jpgdi/html/_win32_createpatternbrush.asp

ピクチャーボックスにモノクロームのビットマップ
をロードしてもダメなんですね。トホホ

picMask.Picture = LoadPicture(App.Path & "\Mask3.bmp")
hMaskBmp = picMask.Image
BrushP = CreatePatternBrush(hMaskBmp)     '指定したペン先
BrushD = SelectObject(.hdc, BrushP)
        
Ellipse pic.hdc, 100, 100, 200, 150
        
BrushP = SelectObject(.hdc, BrushD)
DeleteObject BrushP