首页 > 移动平台 > 详细

MFC圆角背景移动边角底色毛刺解决方案

时间:2015-06-04 13:19:29      阅读:316      评论:0      收藏:0      [点我收藏+]
 1    CRect rc;
 2     Graphics graphics(pDC->m_hDC);
 3     GetClientRect(&rc);
 4     CRgn m_rgn;
 5 
 6     if (m_pBgImage)
 7     {           
 8         graphics.DrawImage(m_pBgImage, 0, 0, rc.Width(), rc.Height());   //贴背景
 9     }
10     if(!m_rgn.m_hObject)
11     {
12         m_rgn.CreateRoundRectRgn((-rc.left) - 1,-rc.top,rc.right - rc.left + 2,rc.bottom - rc.top + 2,15,15);
13         SetWindowRgn(m_rgn,TRUE);
14     }

 

MFC对话框上贴背景,如果有圆角背景图片,边角会做成透明,在生成时背景时,透明处先取底色作为边角颜色,以至于在图片位置改变时或背景改变时原本透明的地方跟其他地方不和谐,造成毛刺。

上面代码在OnEraseBkgnd(CDC* pDC)里,让绘制的图片去边角

MFC圆角背景移动边角底色毛刺解决方案

原文:http://www.cnblogs.com/p-c-/p/4551310.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!