您的位置:首页 > 其它

如何制作透明窗体

2011-08-12 22:42 260 查看
在OnInitDialog()中添加:

ModifyStyleEx(0,WS_EX_LAYERED);
SetLayeredWindowAttributes( RGB(255,0,255), 255, LWA_COLORKEY | LWA_ALPHA);


第一个参数控制哪种颜色透明,第二个参数为其他颜色的透明度。

设置窗体样式还有一种方法:

DWORD dwExStyle=GetWindowLong(this->m_hWnd,GWL_EXSTYLE);
if((dwExStyle&WS_EX_LAYERED )!=WS_EX_LAYERED )
SetWindowLong(this->m_hWnd,GWL_EXSTYLE,dwExStyle^(WS_EX_LAYERED) );//设置窗体样式


函数原型:

BOOL   SetLayeredWindowAttributes(
HWND   hwnd,   //   handle   to   the   layered   window
COLORREF   crKey,   //   specifies   the   color   key
BYTE   bAlpha,   //   value   for   the   blend   function
DWORD   dwFlags   //   action
);


LWA_ALPHA被设置的话,通过bAlpha决定透明度。

LWA_COLORKEY被设置的话,则指定被透明掉的颜色为crKey,其他颜色则正常显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: