C语言圆角矩形画法,GDI+ 如何绘制圆角矩形(vc++)
圆角矩形在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++)相关推荐
- C语言圆角矩形画法,UI们:圆角矩形环快速画法
编按: 圆角矩形在UI中使用非常广.但如何快速地从圆角矩形做出标准的圆角矩形环(你也可以叫做中空圆角矩形)呢?简单的缩放可不成!!本文作者从认识圆角矩形开始,与大家一起绘制各种圆角矩形图案,包括圆角矩 ...
- html页面画一个矩形,使用HTML5 canvas绘制一个矩形的方法
使用HTML5 canvas绘制一个矩形的方法 发布时间:2020-08-29 11:23:12 来源:亿速云 阅读:102 作者:小新 这篇文章将为大家详细讲解有关使用HTML5 canvas绘制一 ...
- JavaScript 使用canvas绘制圆角矩形边框
目录 分析 完整代码如下 前言 在react项目中需要用到绘制矩形填充, 因为直角矩形不够美观, 需要绘制圆角填充矩形 分析 Canvas并没有提供绘制圆角矩形的方法,但是通过观察,我们可以发现,其实 ...
- GDI+绘制圆角矩形
1.最近,用到GDI+绘图,但是发现没有绘制圆角矩形的函数,故自己写了一个.下面贴出原理和代码,以作备份. 2.要绘制圆角矩形,基础是普通的直角矩形,需要做的就是将直角画成弧形. 3.绘制圆角矩形可以 ...
- GDI 绘制圆角矩形
代码从网上搜集 #region 圆角矩形/// /// 最大圆角半径/// protected const int MaxRoundRadius = 3;/// /// 最小矩形边长,用于自动处理圆角 ...
- 画一个圆角多边形_CAD零基础教程,矩形和多边形的画法
矩形的绘制 首先在我们绘图工具栏中,找到矩形和多边形.选择矩形后,在绘图区点击任意一个位置,点击两点就可以绘制成一个矩形. 我们来再尝试一下任意点击两点,就可以确认这个矩形.如何来绘制一个我们所需要的 ...
- 绘制圆角矩形(方法 )
/* sharecodes.org 友情提醒:尊重知识,转载请注明原创作者.出处! */ /// <summary> /// C# GDI+ 绘制圆角矩形 /// </summary ...
- 绘制正弦函数的c语言程序,C语言控制台应用程序GDI绘制正弦曲线.pdf
C语语言言控控制制台台应应用用程程序序GDI绘绘制制正正弦弦曲曲线线 出于本科教学的目的,需要使用C语言在V isual Studio下控制台应用程序中动态绘制曲线,在 查阅了一些资料,制作了一个绘 ...
- R语言层次聚类(hierarchical clustering):使用scale函数进行特征缩放、hclust包层次聚类(创建距离矩阵、聚类、绘制树状图dendrogram,在树状图上绘制红色矩形框)
R语言层次聚类(hierarchical clustering):使用scale函数进行特征缩放.hclust包层次聚类(创建距离矩阵.聚类.绘制树状图dendrogram,在树状图上绘制红色矩形框) ...
- 在Android中绘制圆角矩形图片
圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,下面在Android中实现将普通的矩形图片绘制成圆角矩形. 先来看一下普通矩形图片的显示,代码很简单,从r ...
最新文章
- python function if yield_Python中的yield关键字
- 职高计算机教学案例 反思,关于职高数学优质课教学案例的研究与反思
- Chrome 0 day漏洞利用链
- 【译】Android中的安全数据— Android中的加密(第1部分)
- 虚拟列表控件---加载大数据行
- hplaserjet1022老提示打印错误,hp laserjet 1022 在win7上正确的安装步骤
- hash函数查找和ASL计算
- memlock mysql_mysql配置详解(不断更新)
- pulseaudio之pa_simple_new()流程(十八)
- java-jna win32 api使用
- 项目中集成微信扫码登陆,绑定手机号功能
- 前端激荡三十年,从无到有,从单一到炫彩,技术从未停止!
- 未找到beta版怎么解决_你要的直播解决方案来了!无需采集卡!
- vue 引入 element-ui 报 es2015 的错
- 你从哪里来你是谁你到哪里去_你到底在哪里?
- 从两个角度谈谈:什么是产品视角
- Docker 入坑指南
- Windows服务没有及时响应启动或控制请求1053
- 联系书商出译著的流程
- 修改树莓派的CoD(即蓝牙识别类型)
热门文章
- html5常用的单标签,HTML5的常用的标签
- 如何用Python记录微信撤回的消息
- Gradle配置及同一应用不同版本配置不同资源文件,不同签名,包名进行打包
- web前端期末大作业:云南旅游网页主题网站设计——云南城市旅游5页HTML+CSS+JavaScript
- office word 使用快捷键ctrl c ctrl v提示文件未找到:MathPage.WLL
- 赠书!Python 安全攻防,终于来了!
- NOIP2016普及组复赛——T4魔法阵
- ultravnc,4款不能错过的ultravnc汉化版
- python烤地瓜实例(深入理解面向对象编程)
- 第四天:Spark Streaming