当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

关于透明窗口的显示[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好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .