MFC怎么绘制一个圆角矩形

MFC怎么绘制一个圆角矩形,第1张

参考代码如下:

#define OFFSET_X 5

#define OFFSET_Y 5

void DrawRoundRectange(Graphics &g,Color pens,int x,int y,int width,int height)

{

//设置画图时的滤波模式为消除锯齿现象

g.SetSmoothingMode(SmoothingModeAntiAlias)

//创建一个红色的画笔

Pen *pen = new Pen(pens,1)

//画矩形上面的边

g.DrawLine(pen,x+OFFSET_X,y,width-OFFSET_X,y)

//画矩形下面的边

g.DrawLine(pen,x+OFFSET_X,y+height,width-OFFSET_X,y+height)

//画矩形左面的边

g.DrawLine(pen,x,y+OFFSET_Y,x,y+height-OFFSET_Y)

//画矩形右面的边

g.DrawLine(pen,x+width,y+OFFSET_Y,x+width,y+height-OFFSET_Y)

//画矩形左上角的圆角

g.DrawArc(pen,x,y,OFFSET_X*2,OFFSET_Y*2,180,90)

//画矩形右下角的圆角

g.DrawArc(pen,x+width-OFFSET_X*2,y+height-OFFSET_Y*2,OFFSET_X*2,OFFSET_Y*2,360,90)

//画矩形右上角的圆角

g.DrawArc(pen,x+width-OFFSET_X*2,y,OFFSET_X*2,OFFSET_Y*2,270,90)

//画矩形左下角的圆角

g.DrawArc(pen,x,y+height-OFFSET_Y*2,OFFSET_X*2,OFFSET_Y*2,90,90)

delete pen

}

/* 填充颜色 */

void FillRoundRectangle(Graphics &g,Color color,int x,int y,int width,int height)

{

//矩形填充的步骤:

//1、把圆角矩形画分为四个圆角上分成四个同等的扇形外加三个直角矩形

//2、先填充三个直角矩形

//3、然后填充四个角上的扇形

//创建画刷

Brush *brush = new SolidBrush(color)

//填充三个直角矩形

g.FillRectangle(brush,x,y+OFFSET_Y,width,height-OFFSET_Y*2)

g.FillRectangle(brush,x+OFFSET_X,y,width-OFFSET_X*2,height)

//填充四个角上的扇形区

//填充左上角扇形

#define PIE_OFFSET 2

g.FillPie(brush,x,y,OFFSET_X*2+PIE_OFFSET,OFFSET_Y*2+PIE_OFFSET,180,90)

//填充右下角的扇形

g.FillPie(brush,x+width-(OFFSET_X*2+PIE_OFFSET),y+height-(OFFSET_Y*2+PIE_OFFSET),OFFSET_X*2+PIE_OFFSET,OFFSET_Y*2+PIE_OFFSET,360,90)

//填充右上角的扇形

g.FillPie(brush,x+width-(OFFSET_X*2+PIE_OFFSET),y,(OFFSET_X*2+PIE_OFFSET),(OFFSET_Y*2+PIE_OFFSET),270,90)

//填充左下角的扇形

g.FillPie(brush,x,y+height-(OFFSET_X*2+PIE_OFFSET),(OFFSET_X*2+PIE_OFFSET),(OFFSET_Y*2+PIE_OFFSET),90,90)

delete brush

}

想梦见心中的太阳

再次驶入我孤寂的心房

密林比先前矮了,亮了,

你当呼唤她们从水里出来:路得、拿俄米、米利暗。

似母亲的手心

他们似的入其中,丢中一枚硬币哈哈


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11571190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存