圆角矩形在GDI+中没有现成的函数,所以我们需要自行绘制,采用路径绘制方法,我已经封装成类

效果图

使用方法:

1、创建路径对象

CGraphicsRoundRectPath RoundRectPath;//创建圆角矩形路径对象2、添加矩形区域到路径

RoundRectPath.AddRoundRect(rect.X,rect.Y,rect.Width,rect.Height,5,5);

3、使用Graphics绘制路径

Graphics g;

g.DrawPath(&myPen,&RoundRectPath);

g.FillPath(&SolidBrush(Color(0,0,0)),&RoundRectPath);

头文件

#pragma once

#include

class CGraphicsRoundRectPath: public GraphicsPath

{

public:

CGraphicsRoundRectPath();

CGraphicsRoundRectPath(INT x, INT y, INT width, INT height, INT cornerX, INT cornerY);

public:

void AddRoundRect(INT x, INT y, INT width, INT height, INT cornerX, INT cornerY);

};

CPP文件

#include "StdAfx.h"

#include "GraphicsRoundRect.h"

CGraphicsRoundRectPath::CGraphicsRoundRectPath(void)

:Gdiplus::GraphicsPath()

{

}

CGraphicsRoundRectPath::CGraphicsRoundRectPath(INT x, INT y, INT width, INT height, INT cornerX, INT cornerY)

:Gdiplus::GraphicsPath()

{

AddRoundRect(x,y,width,height,cornerX,cornerY);

}

void CGraphicsRoundRectPath::AddRoundRect(INT x, INT y, INT width, INT height, INT cornerX, INT cornerY)

{

INT elWid = 2*cornerX;

INT elHei = 2*cornerY;

AddArc(x,y,elWid,elHei,180,90); // 左上角圆弧

AddLine(x+cornerX,y,x+width-cornerX,y); // 上边

AddArc(x+width-elWid,y, elWid,elHei,270,90); // 右上角圆弧

AddLine(x+width,y+cornerY, x+width,y+height-cornerY);// 右边

AddArc(x+width-elWid,y+height-elHei, elWid,elHei,0,90); // 右下角圆弧

AddLine(x+width-cornerX,y+height, x+cornerX,y+height); // 下边

AddArc(x,y+height-elHei, elWid,elHei,90,90);

AddLine(x,y+cornerY, x, y+height-cornerY);

}

C语言圆角矩形画法,GDI+ 如何绘制圆角矩形(vc++)相关推荐

  1. C语言圆角矩形画法,UI们:圆角矩形环快速画法

    编按: 圆角矩形在UI中使用非常广.但如何快速地从圆角矩形做出标准的圆角矩形环(你也可以叫做中空圆角矩形)呢?简单的缩放可不成!!本文作者从认识圆角矩形开始,与大家一起绘制各种圆角矩形图案,包括圆角矩 ...

  2. html页面画一个矩形,使用HTML5 canvas绘制一个矩形的方法

    使用HTML5 canvas绘制一个矩形的方法 发布时间:2020-08-29 11:23:12 来源:亿速云 阅读:102 作者:小新 这篇文章将为大家详细讲解有关使用HTML5 canvas绘制一 ...

  3. JavaScript 使用canvas绘制圆角矩形边框

    目录 分析 完整代码如下 前言 在react项目中需要用到绘制矩形填充, 因为直角矩形不够美观, 需要绘制圆角填充矩形 分析 Canvas并没有提供绘制圆角矩形的方法,但是通过观察,我们可以发现,其实 ...

  4. GDI+绘制圆角矩形

    1.最近,用到GDI+绘图,但是发现没有绘制圆角矩形的函数,故自己写了一个.下面贴出原理和代码,以作备份. 2.要绘制圆角矩形,基础是普通的直角矩形,需要做的就是将直角画成弧形. 3.绘制圆角矩形可以 ...

  5. GDI 绘制圆角矩形

    代码从网上搜集 #region 圆角矩形/// /// 最大圆角半径/// protected const int MaxRoundRadius = 3;/// /// 最小矩形边长,用于自动处理圆角 ...

  6. 画一个圆角多边形_CAD零基础教程,矩形和多边形的画法

    矩形的绘制 首先在我们绘图工具栏中,找到矩形和多边形.选择矩形后,在绘图区点击任意一个位置,点击两点就可以绘制成一个矩形. 我们来再尝试一下任意点击两点,就可以确认这个矩形.如何来绘制一个我们所需要的 ...

  7. 绘制圆角矩形(方法 )

    /* sharecodes.org 友情提醒:尊重知识,转载请注明原创作者.出处! */ /// <summary> /// C# GDI+ 绘制圆角矩形 /// </summary ...

  8. 绘制正弦函数的c语言程序,C语言控制台应用程序GDI绘制正弦曲线.pdf

    C语语言言控控制制台台应应用用程程序序GDI绘绘制制正正弦弦曲曲线线 出于本科教学的目的,需要使用C语言在V isual Studio下控制台应用程序中动态绘制曲线,在 查阅了一些资料,制作了一个绘 ...

  9. R语言层次聚类(hierarchical clustering):使用scale函数进行特征缩放、hclust包层次聚类(创建距离矩阵、聚类、绘制树状图dendrogram,在树状图上绘制红色矩形框)

    R语言层次聚类(hierarchical clustering):使用scale函数进行特征缩放.hclust包层次聚类(创建距离矩阵.聚类.绘制树状图dendrogram,在树状图上绘制红色矩形框) ...

  10. 在Android中绘制圆角矩形图片

    圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,下面在Android中实现将普通的矩形图片绘制成圆角矩形.        先来看一下普通矩形图片的显示,代码很简单,从r ...

最新文章

  1. python function if yield_Python中的yield关键字
  2. 职高计算机教学案例 反思,关于职高数学优质课教学案例的研究与反思
  3. Chrome 0 day漏洞利用链
  4. 【译】Android中的安全数据— Android中的加密(第1部分)
  5. 虚拟列表控件---加载大数据行
  6. hplaserjet1022老提示打印错误,hp laserjet 1022 在win7上正确的安装步骤
  7. hash函数查找和ASL计算
  8. memlock mysql_mysql配置详解(不断更新)
  9. pulseaudio之pa_simple_new()流程(十八)
  10. java-jna win32 api使用
  11. 项目中集成微信扫码登陆,绑定手机号功能
  12. 前端激荡三十年,从无到有,从单一到炫彩,技术从未停止!
  13. 未找到beta版怎么解决_你要的直播解决方案来了!无需采集卡!
  14. vue 引入 element-ui 报 es2015 的错
  15. 你从哪里来你是谁你到哪里去_你到底在哪里?
  16. 从两个角度谈谈:什么是产品视角
  17. Docker 入坑指南
  18. Windows服务没有及时响应启动或控制请求1053
  19. 联系书商出译著的流程
  20. 修改树莓派的CoD(即蓝牙识别类型)

热门文章

  1. html5常用的单标签,HTML5的常用的标签
  2. 如何用Python记录微信撤回的消息
  3. Gradle配置及同一应用不同版本配置不同资源文件,不同签名,包名进行打包
  4. web前端期末大作业:云南旅游网页主题网站设计——云南城市旅游5页HTML+CSS+JavaScript
  5. office word 使用快捷键ctrl c ctrl v提示文件未找到:MathPage.WLL
  6. 赠书!Python 安全攻防,终于来了!
  7. NOIP2016普及组复赛——T4魔法阵
  8. ultravnc,4款不能错过的ultravnc汉化版
  9. python烤地瓜实例(深入理解面向对象编程)
  10. 第四天:Spark Streaming