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

 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)里,让绘制的图片去边角

时间: 2024-10-12 17:21:04

MFC圆角背景移动边角底色毛刺解决方案的相关文章

MFC添加背景图片

1.在资源里导入一个bmp图片假设名称为IDB_BITMAP1 实现OnPaint方法 CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP是你自己的图对应的ID BITMAP bitmap; bmpBack

【Android UI】案例02 圆角边框、圆角背景的实现(shape)

本文主要分享圆角边框与圆角背景的实现方式.该方式的实现,需要了解shape的使用,该部分的详细介绍,请阅读博客http://blog.csdn.net/mahoking/article/details/23672271.文中有较详细的介绍. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 如下是演示的shape_layout.xml模板. <?xml version="1.0" encoding="utf-8"?>

NEC学习 ---- 模块 -文本圆角背景导航

下图是效果图: 然后, 左右两边的圆角图片和背景图片如下 (因为截图工具的原因, 可能图片不是很清晰. 这个图片有4个部分, 分别是中间的背景图, 左右圆角以及栏目分隔白线) 思路: 利用inline-block元素的中间性(既有块级元素特点: 能够控制宽高,可以定位, 也有内联元素特点: 可以被父元素text-align等) HTML代码: <div class="m-nav"> <ul> <li class="first">&

【VS开发】MFC中调用C函数模块的解决方案

[VS开发]MFC中调用C函数模块的解决方案 标签(空格分隔): [VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:最近调试基于MFC的程序,当通过外部C文件引入某个function的时候,又一次忘记了C文件与C++文件的区别,直接按照一般的方式,将函数声明放入头文件,将函数定义放入C文件,然后再MFC中通过包含头文件来引用对应的function,然而爆出了链接时无法定位的错误,本文就来梳理一下C++中调用C中功能函数的方法. 首先在C

圆角背景实现,如实现圆角按钮;用xml文件画圆

项目中为了更好的视觉效果,然后又懒的去弄图片做背景时,往往就会通过xml布局文件来实现圆角的效果. 在drawable目录下新建一个shape类型的xml文件,设置<corners android:radius="5dp" />,然后在需要设为圆角的控件中,如按钮或LinearLayout,设置他们的background为drawable="@drawable/...".即可达到圆角的效果 // 用xml文件画圆 用竖线连接ListView的各个item

使用一个shape.xml文件,使用代码设置不同圆角背景颜色

给一个View设置一个圆角的背景颜色,我们一般会使用xml文件设置,使用<shape>节点设置,但是如果我们对一系列的View设置圆角北京,并且背景颜色色值不同,那么我们第一感觉想到的是创建多个xml文件,更改solid填充背景,其实我们可以使用一个xml文件就可以搞定,使用代码更改里面的填充颜色色值.废话不多话,看代码. 效果: 首先:创建activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro

android 圆角背景

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 设置按钮的左上角和右下角为弧形 --> <stroke android:color="@color/co

css3基础-选择器+边框与圆角+背景与渐变

Css3选择器相关: section > div直接子元素选择器 div + article相邻兄弟选择器(在元素之后出现) div ~ article通用兄弟选择器(在元素之后出现) 属性选择器: a[href] { text-decoration: none; } a[href="#"] { color: #f00; } /*包含two且属性值用空格分隔:*/ a[class~="two"] { color: #ff0; } /*属性的第一个值以#开头:*

MFC 加入背景图片并让控件背景透明

/*加入背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) { // TODO: 在此加入消息处理程序代码和/或调用默认值 CDialog::OnEraseBkgnd(pDC); HBITMAP   m_hBitmap; HDC           m_hBkDC; m_hBitmap   =   ::LoadBitmap(::GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP2)); m_hBkDC     =