杞人 发表于 2013-8-30 20:27:50

WinAPI透明窗体SetLayeredWindowAttributes

SetLayeredWindowAttributes
BOOL SetLayeredWindowAttributes(         
   HWND hwnd,
   COLORREF crKey,
   BYTE bAlpha,
   DWORD dwFlags
);

hwnd是透明窗体的句柄,
crKey为颜色值,
bAlpha是透明度,取值范围是,
dwFlags是透明方式,可以取两个值:
          当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;
          当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为crKey的地方将变为透明。
          LWA_ALPHA = 0x2
          LWA_COLORKEY=0x1要使使窗体拥有透明效果,首先要有WS_EX_LAYERED扩展属性
(旧的sdk没有定义这个属性,所以可以直接指定为0x80000).
WS_EX_LAYERED = 0x80000   -----------------------------------------------------------------------------------------
SetWindowLong(    this->GetSafeHwnd(),    GWL_EXSTYLE,
    GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE) | 0x80000    );当然这个API相对于Mess**** Hidden Message *****

tjusyj 发表于 2013-8-30 20:40:45

这个好~学习学习~

杞人 发表于 2013-8-30 20:43:48

希望大家支持

飞雪 发表于 2013-8-30 20:47:08

支持楼主{:5_108:}

jcindex 发表于 2013-8-30 20:55:41

支持楼主{:1_1:}{:1_1:}{:1_1:}{:1_1:}

牡丹花下死做鬼 发表于 2013-8-30 21:27:35

O(∩_∩)O~ 不错 学习了 O(∩_∩)O~

devil5975 发表于 2013-8-30 21:37:52

有的不可用呀

╰羊づ尐懶 发表于 2013-8-30 22:12:23

{:5_102:}给力

永恒定律 发表于 2013-8-30 22:28:18

这个好~学习学习~

如梦幻泡影 发表于 2013-8-31 13:09:40

要能实现窗体透明,控件不透明就好了

格式天下 发表于 2013-8-31 14:18:22

不错!!!!!!!!!!!

zzmaster 发表于 2013-8-31 14:28:25

不错,学习下!

那年 发表于 2013-8-31 15:24:23

呵呵,好啊

卡布基米 发表于 2013-8-31 21:08:35

不明觉厉,谢谢分享!

wh1003665041 发表于 2013-9-1 08:16:46

涉水寻源 发表于 2013-9-1 08:43:05

支持楼主。

qqqqq 发表于 2013-9-1 13:06:16

支持。。。。。。。。。。。。。。。。

sushan2012 发表于 2013-9-1 13:33:11

{:1_1:}很好。。

baozhazhizi 发表于 2013-11-7 14:01:41

看看!!!!

2548827329 发表于 2013-11-7 19:02:10

不错,学习一下
页: [1] 2
查看完整版本: WinAPI透明窗体SetLayeredWindowAttributes