MFC对话框背景透明的问题

tangyuint 2012-12-18 07:08:50
用MFC控件写了一个播放器,将对话框背景设置呈透明的时候播放器背景也成了透明的,用方法只让播放器背景以外的界面变透明吗?
谢指导!
...全文
248 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2012-12-19
  • 打赏
  • 举报
回复
至于怎么搞成黑色,你可以响应OnEraseBkgnd,注释掉默认的return语句,改成获取客户区大小,然后FillSolidRect填充黑色,再return TRUE;
快乐鹦鹉 2012-12-19
  • 打赏
  • 举报
回复
将对话框用固定的颜色显示,然后使用SetLayeredWindowAttributes函数,将这个颜色透明就好。比如说黑色,那么可以是:
SetLayeredWindowAttributes(m_hWnd, RGB(0,0,0),0, LWA_COLORKEY);
傻X 2012-12-18
  • 打赏
  • 举报
回复
用SetLayeredWindowAttributes对整个Dialog做颜色处理 放到Dialog初始化之中

 ::SetWindowLong(m_hCurrWnd, GWL_EXSTYLE,
                        GetWindowLong(m_hCurrWnd, 
                        GWL_EXSTYLE) ^ WS_EX_LAYERED);
        g_pSetLayeredWindowAttributes(m_hCurrWnd, 0,
                        (BYTE)m_slider.GetPos(), LWA_ALPHA);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧