早些年用过GDI的同学都知道,用GDI绘图API函数画斜线那个锯齿有多恶心。就像下图第一行的三条斜线:

  坦白说,45度斜线在抗锯齿以前还是蛮抗锯齿的,哈哈,抗不抗都没什么差别。

  那第二行很自然就看得出是抗锯齿之后的效果。

  话不多说,直接给大家上代码。

  创建Win32应用程序,在cpp文件的顶部加入GDI+的引用:

#include <windows.h>#include <objidl.h>
#define GDIPVER 0x0110
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;#define MAX_LOADSTRING 100

  在cpp文件的主函数内添加初始化程序:

    // 初始化全局字符串
    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);LoadString(hInstance, IDC_SVV, szWindowClass, MAX_LOADSTRING);MyRegisterClass(hInstance);GdiplusStartupInput gdiplusStartupInput;  ULONG_PTR gdiplusToken;  GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);// 执行应用程序初始化:if (!InitInstance (hInstance, nCmdShow)){return FALSE;}

  在cpp文件的窗口过程回调函数中添加绘制斜线的程序:

    case WM_PAINT:hdc = BeginPaint(hWnd, &ps);{// TODO: 在此添加任意绘图代码...
            Graphics graphics(hdc);  Pen pen(Color(255, 255, 255, 255), 5); graphics.SetSmoothingMode(SmoothingMode::SmoothingModeHighSpeed);  graphics.DrawLine(&pen, 100, 100, 400, 120);  graphics.SetSmoothingMode(SmoothingMode::SmoothingModeAntiAlias8x8);  graphics.DrawLine(&pen, 100, 300, 400, 320);  graphics.SetSmoothingMode(SmoothingMode::SmoothingModeHighSpeed);  graphics.DrawLine(&pen, 500, 100, 700, 300);  graphics.SetSmoothingMode(SmoothingMode::SmoothingModeAntiAlias8x8);  graphics.DrawLine(&pen, 500, 300, 700, 500);  graphics.SetSmoothingMode(SmoothingMode::SmoothingModeHighSpeed);  graphics.DrawLine(&pen, 800, 50, 820, 300);  graphics.SetSmoothingMode(SmoothingMode::SmoothingModeAntiAlias8x8);  graphics.DrawLine(&pen, 800, 250, 820, 500);  }EndPaint(hWnd, &ps);break;

  在cpp文件的主函数内添加反初始化程序:

    // 主消息循环:while (GetMessage(&msg, NULL, 0, 0)){if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)){TranslateMessage(&msg);DispatchMessage(&msg);}}GdiplusShutdown(gdiplusToken);return (int) msg.wParam;

  打完,收工。

下载:抗锯齿演示程序 — SVV for Win7 32bit

转载于:https://www.cnblogs.com/EdmundDwyane/p/7730399.html

谢欣伦 - 原创教程 - 使用GDI+绘制抗锯齿斜线相关推荐

  1. 谢欣伦 - OpenDev原创教程 - 蓝牙设备查找类CxBthRemoteDeviceFind

    这是一个精练的蓝牙设备查找类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxBthRemoteDeviceFind的使用如下: ...

  2. 谢欣伦 - OpenDev原创例程 - 网络摄像机WebCamera

    Win7没有预装摄像头软件,打开摄像头通常需要第三方软件来完成.第三方软件,好的要收费,免费的又没几款,其中功能完整的寥寥可数.正好我在做一个数字摄像头视频捕获的功能,经过两周的整理优化,我做了一个简 ...

  3. 在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言[转]

    在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言 作者:网友供稿 点击:4 gdi+ 是gdi(windows 早期版本提供的图形设备接口)的后续版本,是microsoft ...

  4. eeglab教程系列(15)-绘制独立成分ERP贡献

    要完成该操作,必须保证已加载数据和电极位置数据,同时还要对数据进行提取epoch,并对数据进行ICA处理,操作如下: 加载数据文件:eeglab教程系列(2)-加载.显示数据 加载位置文件:eegla ...

  5. eeglab教程系列(4)-绘制通道光谱图

    在进行通道光谱图绘制前,需要先按照eeglab教程系列(3)-绘制脑电头皮图进行先操作(只需操作完第二步后点击OK即可). 绘制通道光谱图 在eeglab界面进行如下操作:Plot > Chan ...

  6. eeglab中文教程系列(3)-绘制通道光谱图

    目录 绘制通道光谱图 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195 在进行通道光谱图绘制前,需要先按照eeglab教程系列(2)-绘制脑电头皮图进行先操作(只 ...

  7. Matlab二维图导入ansys,(原创教程)利用Matlab对ANSYS数据进行后处理.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab (原创教程)利用Matlab对ANSYS数据进行后 ...

  8. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

  9. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数013,shape模型

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数013,shape模型 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号"**&qu ...

最新文章

  1. 人工智能论坛、AI x Science 论坛和首席智行官大会
  2. WPF 根据绑定值设置DataGrid行背景色
  3. Python学完之后从业情况怎么样?
  4. 2020下半年新机最新消息_提前剧透 2020 年下半年五大新机
  5. python脚本编程实例_C程序调用Python脚本的例子
  6. mysql 读取comment_Mysql 获取表的comment 字段
  7. 云大计算机昆工,云南最好的7所大学,分3档!本地人青看中昆医大,外省更爱昆工!...
  8. js alert 封装 layui
  9. ArcGIS操作总结(更新中......)
  10. 北理乐学大学计算机实验4,北理工乐学上机实验五
  11. JWT全面解读、详细使用步骤
  12. 订单拆单-产品逻辑分析研究
  13. appium解决socket hang up,正确解决姿势
  14. mysql 字符串截取
  15. Golang将密码盐加密
  16. 全球名校AI课程库(1)| 深度学习专项课程『Deep Learning Specialization』
  17. 5G手机的未来战事,谁抢先手?
  18. GDOI2016 退役记
  19. macos系统终端命令失效
  20. html5中加视频的代码,向HTML中插入视频并兼容所有浏览器的方法

热门文章

  1. 记Ubuntu18.04安装后网卡搜不到wifi的问题的解决过程(Device c822驱动问题)
  2. C#已知两点(线段),求互相垂直平分两点(线段)。
  3. MySQL日志管理、备份
  4. 数据库中字段类型转换
  5. 【秋招总结】面试相关-基础概念
  6. EasyExcel导出动态合并单元格
  7. centos将某一目录权限给用户_在Linux上给用户赋予指定目录的读写权限
  8. 对抗生成网络GAN系列——AnoGAN原理及缺陷检测实战
  9. 对商标裁定不服怎么办?
  10. 重磅!2021年报考指南出炉!揭秘最具潜力的高薪专业,这些人才最有“钱途”!...