必威体育Betway必威体育官网
当前位置:首页 > IT技术

窗口透明化 AlphaBlend

时间:2019-08-03 23:10:00来源:IT技术作者:seo实验室小编阅读:83次「手机版」
 

alphablend

在网上搜了下alphablend的说明,也看了MSDN,但还是不太明白,自己就动手试了下,结果OK。

先贴下代码

BLENDFUNCTION   bf;   

bf.AlphaFormat=0;   

bf.BlendFlags=0;   

bf.BlendOp=AC_SRC_OVER;   

bf.SourceconstantAlpha=128;//透明度50%(0 - 255)

CDC* parentDc = GetParent()->GetDC();

CDC* dc = GetDC();

CRect rt;

GetClientRect(&rt);

CRect rtWnd;

GetWindowRect(&rtWnd);

GetParent()->screentoclient(&rtWnd);

AlphaBlend(dc->GetSafeHdc(),0,0, rt.Width(), rt.Height(), parentDc->GetSafeHdc(), rtWnd.left, rtWnd.top, rt.Width(), rt.Height(), bf);

ReleaseDC(parentDc);

ReleaseDC(dc);

这段代码的背景如下:一个对话框,点击一个按钮,接着执行上面的代码;

所谓透明,其实就是把自己挡住的部分显示在自己的界面,其实有个像素的处理,API函数AlphaBlend就是做了这个处理;

因为这只是测试,所以如果你要实现自动透明化,那应该在OnPaint中做相应的处理。

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读