首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

使用Gdiplus描画透明图遇到有关问题

2013-11-13 
使用Gdiplus描画透明图遇到问题。本来想使用一个半透明的图片做边框的,但是画出来之后透明是透明了,但是无

使用Gdiplus描画透明图遇到问题。
本来想使用一个半透明的图片做边框的,但是画出来之后透明是透明了,但是无论窗体的后面怎么改变半透明边框不会更新,请问该怎么解决。大神们请看图,边框透明部分应该是CSND论坛才对的,但是无论怎么样还是显示VS里面的画面。
使用Gdiplus描画透明图遇到有关问题
[解决办法]
四楼正解,您必须使用CreateWindowEx,并使用WS_EX_LAYERED风格创建窗口。
不过,您再也无法收到“必要”的WM_PAINT消息了,换句话说,使用WS_EX_LAYERED创建的窗口不在遵循常规的窗口更新机制,必须使用UpdateLayeredWindow这个函数来更新窗口,其实习惯也就好了。
另外,如果您是要(部分)半透明的窗口,请UpdateLayeredWindow的时候指定一个已经SeletObject一个32位颜色的颜色的HBITMAP,然后想怎么透明就怎么透明。
[解决办法]
SetLayeredWindowAttribute
只能实现某种颜色的全透明 或者 整个窗口同一个幅度的半透.
美工基本上不会同意.

UpdateLayeredWindow
可以实现alpha通道的半透明, 即不同的地方透明度可以不一样.
可以绘制png图片, 美工的最爱.
缺点是没有WM_PAINT消息.

这俩是冲突的, 不能同时使用.

热点排行