窗口换肤,要求支持png格式的图片 ( 积分: 100 )

  • 主题发起人 主题发起人 deltop
  • 开始时间 开始时间
D

deltop

Unregistered / Unconfirmed
GUEST, unregistred user!
按设定的位图透明色,将窗口裁减成不规则区域,再将位图贴在窗口上,地球人都知道,但bitmap没有半透明效果,我用pngimage控件做了一个不规则窗口,在程序第一次运行,或窗口由非当前窗口变成活动窗口时,可以实现半通明效果,但窗口移动后,窗口半通明的部分没有变化,与移动前一样。可惜不能上传图片,说不明白,我说的效果就是笨笨钟那个程序的效果,感兴趣的下载个笨笨钟一看便知(笨笨钟用的图片就是png格式的)
 
按设定的位图透明色,将窗口裁减成不规则区域,再将位图贴在窗口上,地球人都知道,但bitmap没有半透明效果,我用pngimage控件做了一个不规则窗口,在程序第一次运行,或窗口由非当前窗口变成活动窗口时,可以实现半通明效果,但窗口移动后,窗口半通明的部分没有变化,与移动前一样。可惜不能上传图片,说不明白,我说的效果就是笨笨钟那个程序的效果,感兴趣的下载个笨笨钟一看便知(笨笨钟用的图片就是png格式的)
 
我看了,他是通过调节窗体透明度做的

Self.AlphaBlend := True;
Self.AlphaBlendValue := 128;
 
png本身支持半通明效果,图片中保存有alphablend信息,
Self.AlphaBlend := True;
Self.AlphaBlendValue := 128;
这个将整个窗口半透明了,我说的是窗口局部有半透明效果,举个例子,不规则窗口是一个人物图象(不透明的)+他的影子(半透明的),笨笨钟中的魔法师皮肤就是这样
 
怎么没人应
 
论坛中有用gdi+实现的,但在w2k下要带gdiplus.dll太不方便,我用pngimage组件用同样的方法不行,有高手吗?
 
我已搞定,就是拖动图象时闪烁,程序我已上传到另一个论坛,你可以到http://www.01cn.net/cgi-bin/topic_show.cgi?id=2781&h=1&bpg=1&age=0 下载
 
看到了,效果不错,不过界面上放别的按钮和图片就看不见了,按钮看不见,但是还可以点击,怎么处理?
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部