关于透明窗口的显示[VC/C++编程]
本文“关于透明窗口的显示[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
第1种
半透明窗口
//----------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
long lRt=GetWindowLong(Handle,GWL_EXSTYLE);
lRt=lRt|WS_EX_LAYERED;
SetWindowLong(Handle,GWL_EXSTYLE,lRt);
SetLayeredWindowAttributes(Handle,clBlue,200,LWA_ALPHA);
}
//-----------------------------------------------------------------
第2种
早就想写一篇我这方面的心得, 一向特忙没有空, 不过这次点名找我, 就不好再缩头缩脑了.
其实我也还有很多问题没有办理, 在这里也向高手请教.
此篇在V-Galaxy BBS发表, 如要转贴请和作者接洽info@ministars.com
1. Windows 2000 的GDI+扩大集
Windows 2000内部扩大了原有的GDI指令集, 将直接供应高效的图象处理指令如Alpha Blending等. 在Win2000里有一个专门的窗口吻概WS_EX_LAYERED供应透明窗口的大概. Win2000还供应如 AnimateWindow(...)一类的API, 直接支持窗口动画.
有关衔接
http://www.microsoft.com/hwdev/video/GDInext.htm
http://x.wonder.ca/stevex/nthack/
2. Win95/NT下的实现办法
既然Windows不供应现成的, 就只好自己做了. 原则上是这么历程:
a. 获得桌面的DC,生成一个兼容的Bitmap,送一个WM_PAINT消息,把桌面取到Bitmap里.(就像一个Screen Capture)
b. 把自己要开的窗口画到另一幅Bitmap
c. 用这两幅图片做Alpha Blending, 大概其他效果, 生成第三幅图.
d. 最后再把图片BitBlt出来
以上是“关于透明窗口的显示[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:<b>若何用BCB做出可移动的菜单</b>
- ·下一篇文章:用BCB3.0制作桌面动画
- ·中查找“关于透明窗口的显示”更多相关内容
- ·中查找“关于透明窗口的显示”更多相关内容