场景

  1. 在使用WTL或MFC开发自定义按钮时, 往往美工设计的按钮都时圆角矩形的. 用GDI的函数RoundRect函数可以简便的绘制圆角矩形, 但是如果椭圆(ellipse)的宽高比较大的时候, 按钮比较大. 这时候按钮的圆角矩形看起来就是有锯齿的(aliasing).

  2. GDI的函数里, 没有比较好的函数来实现抗锯齿(antialias), 如果不想自己去解决锯齿效果, 只能使用Gdiplus来解决.

说明

  1. Gdiplus没有自己的RoundRect函数, 所以需要自己实现一个. 其实圆角就是直角坐标系以椭圆形的圆心为原点分割4部分, 在4个角分别绘制椭圆的4个部分, 之后再由上下左右4条直线组成.

  2. 关键的函数还是graphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);, 没有这个, 绘制出来的圆角矩形和RoundRect是一样的, 有锯齿.

例子

图示


// Create round rect path.

[ATL/WTL]_[Gdiplus]_[关于使用Gdiplus来绘制反锯齿的圆角矩形]相关推荐

  1. app图标圆角角度_怎样使用sketch绘制标准APP图标圆角矩形背景?

    主要是做UI设计时ICON背景板的一些操作方式,例如以下图标的背板.可以看出不单单是圆角矩形,而是有点胖胖的圆角矩形,那这种矩形要怎么简便省时的操作. 用sketch绘制的效果我简单会分为3种常见背板 ...

  2. 去掉圆角_小米11高清渲染图曝光:蓝色机身 圆角矩形摄像模组

    12月25日消息,下周一,全新小米11就将正式亮相,临近发布,关于这款新机的消息也是越来越多,日前,国外社交媒体放出了小米11的高清渲染图. 从图片可以看到,新机提供了蓝色的配色,整个配色清新.淡雅, ...

  3. [WTL/ATL]_[Gdiplus]_[绘制虚线并设置破折号空格的宽度]

    场景 WTL界面开发时,有些情况下需要绘制虚线,比如圆角矩形的虚线,默认的破折号和点之间的空格特别小,看着比较密集,那么如何增加点线之间的空格,或者增加破折号的长度? 说明 使用Gdiplus绘制圆角 ...

  4. [ATL/WTL]_[Gdiplus]_[实现按钮的阴影效果]

    场景 在WTL开发时, 由于界面需要, 很多按钮都是奇形怪状的. 比如卡片形状, 圆角矩形等等. 只要是点击能响应一个事件的, 我们都可以看做是一个异形按钮. 其中让按钮呈现立体效果, 动画效果等一直 ...

  5. [WTL/ATL]_[中级]_[自定义TrackBar]

    场景 开发WTL/ATL界面程序时, 有时候会需要微调控件进行缓慢增减数值. 但是微调控件在大数值调整上往往比较麻烦,需要点击很多次.这时就需要使用TrackBar控件[1]进行大数值的快速变化. 标 ...

  6. [ATL/WTL]_[初级]_[自定义多列TreeView]

    场景 在开发 Win32,WTL,MFC 程序时,经常会用到 ListView 这个表格控件,ListView 的数据是按照行来显示的,行与行之间没有并没有什么关系.但是如果行之间有父子关系,比如像树 ...

  7. MATLAB_4-形态学_腐蚀_膨胀_灰度图的腐蚀以及膨胀_开运算_闭运算_文章末尾有几个素材例子

    素材链接: MATLAB_4-形态学_课程需要的素材 记住单词拼写: 腐蚀 erode 膨胀 dilate 开运算 open 闭运算 close 图像重建 imreconstruct reconstr ...

  8. 计算机会计课程试题及答案,计算机会计第2次作业_报表_附答案

    计算机会计第2次作业_报表_附答案 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 . . . . .<计算机会计>课程作业 ...

  9. java语言仅支持单重继承_java语言程序设计基础篇习题_复习题_第十一章

    java语言程序设计基础篇习题_复习题_第十一章 11.1 下面说法是真是假?一个子类是父类的子集. 11.2 使用什么关键字来定义一个子类 11.3 什么是单一继承?什么是多重继承?java支持多重 ...

  10. 宏定义中的#、##操作符和... 、 _ _VA_ARGS_ _解析

    #   #符号作为一个预处理运算符,它可以把语言符号转化成字符串.例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串.该过程称为字符串化(stringizing). 例子 #incldu ...

最新文章

  1. 【Java例题】2.1复数类
  2. 【extjs6学习笔记】1.1 初始:创建项目
  3. cplex学术版安装
  4. abap 如何去掉字符串前导0
  5. QT通过JavaScript动态创建QML对象
  6. SpringBoot2.x Flowable 6.4.2 开源项目
  7. python读取字典元素笔记_Python 学习笔记 - 字典
  8. powershell 安装mvn_Maven 安装好之后,命令行执行 `mvn -v` 提示“'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”...
  9. HWPFDocument读取doc,wps文档(含图片读取)
  10. 博客6:磁盘以及创建文件系统的相关知识点
  11. [2019上海网络赛F题]Rhyme scheme
  12. oracle数据库赋权_Oracle数据库权限
  13. 软件管理 --软件仓库的搭建
  14. 2014江西理工大学C语言程序竞赛高级组
  15. vs2017 linux unable to start debugging
  16. 高校学生考勤管理系统设计与简单实现
  17. 再理解:零空间、行空间、列空间、左零空间、基础解系、极大线性无关组、齐次解、非齐次解之间的关系
  18. Node* create()的含义
  19. 一个牛B程序员的奋斗
  20. js中遍历数组加到新数组_JS数组遍历的十二种方式

热门文章

  1. bypass功能介绍
  2. Java 设计模式 Adapter 类适配器 模式
  3. Neo4j 语法帮助文档
  4. 使用SecureCRT下载服务器日志到本地windows
  5. Java项目毕业设计:基于springboot+vue的旧物置换网站
  6. python launcher下载_Python flauncher包_程序模块 - PyPI - Python中文网
  7. java actionsupport_struts2为什么action要继承actionSupport类
  8. Typora突然开始收费?开源免费的MarkText了解一下
  9. java|jsp类成品展示_jsp学生诚信素质评价系统
  10. 安装HP P1008打印机经历