谢欣伦 - 原创教程 - 使用GDI+绘制抗锯齿斜线
早些年用过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+绘制抗锯齿斜线相关推荐
- 谢欣伦 - OpenDev原创教程 - 蓝牙设备查找类CxBthRemoteDeviceFind
这是一个精练的蓝牙设备查找类,类名.函数名和变量名均采用匈牙利命名法.小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合. CxBthRemoteDeviceFind的使用如下: ...
- 谢欣伦 - OpenDev原创例程 - 网络摄像机WebCamera
Win7没有预装摄像头软件,打开摄像头通常需要第三方软件来完成.第三方软件,好的要收费,免费的又没几款,其中功能完整的寥寥可数.正好我在做一个数字摄像头视频捕获的功能,经过两周的整理优化,我做了一个简 ...
- 在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言[转]
在VC中用GDI+绘制角度可变的颜色渐变效果-.NET教程,VB.Net语言 作者:网友供稿 点击:4 gdi+ 是gdi(windows 早期版本提供的图形设备接口)的后续版本,是microsoft ...
- eeglab教程系列(15)-绘制独立成分ERP贡献
要完成该操作,必须保证已加载数据和电极位置数据,同时还要对数据进行提取epoch,并对数据进行ICA处理,操作如下: 加载数据文件:eeglab教程系列(2)-加载.显示数据 加载位置文件:eegla ...
- eeglab教程系列(4)-绘制通道光谱图
在进行通道光谱图绘制前,需要先按照eeglab教程系列(3)-绘制脑电头皮图进行先操作(只需操作完第二步后点击OK即可). 绘制通道光谱图 在eeglab界面进行如下操作:Plot > Chan ...
- eeglab中文教程系列(3)-绘制通道光谱图
目录 绘制通道光谱图 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195 在进行通道光谱图绘制前,需要先按照eeglab教程系列(2)-绘制脑电头皮图进行先操作(只 ...
- Matlab二维图导入ansys,(原创教程)利用Matlab对ANSYS数据进行后处理.pdf
您所在位置:网站首页 > 海量文档  > 计算机 > matlab (原创教程)利用Matlab对ANSYS数据进行后 ...
- 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册
<zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数013,shape模型
<zw版·Halcon-delphi系列原创教程> Halcon分类函数013,shape模型 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号"**&qu ...
最新文章
- 人工智能论坛、AI x Science 论坛和首席智行官大会
- WPF 根据绑定值设置DataGrid行背景色
- Python学完之后从业情况怎么样?
- 2020下半年新机最新消息_提前剧透 2020 年下半年五大新机
- python脚本编程实例_C程序调用Python脚本的例子
- mysql 读取comment_Mysql 获取表的comment 字段
- 云大计算机昆工,云南最好的7所大学,分3档!本地人青看中昆医大,外省更爱昆工!...
- js alert 封装 layui
- ArcGIS操作总结(更新中......)
- 北理乐学大学计算机实验4,北理工乐学上机实验五
- JWT全面解读、详细使用步骤
- 订单拆单-产品逻辑分析研究
- appium解决socket hang up,正确解决姿势
- mysql 字符串截取
- Golang将密码盐加密
- 全球名校AI课程库(1)| 深度学习专项课程『Deep Learning Specialization』
- 5G手机的未来战事,谁抢先手?
- GDOI2016 退役记
- macos系统终端命令失效
- html5中加视频的代码,向HTML中插入视频并兼容所有浏览器的方法
热门文章
- 记Ubuntu18.04安装后网卡搜不到wifi的问题的解决过程(Device c822驱动问题)
- C#已知两点(线段),求互相垂直平分两点(线段)。
- MySQL日志管理、备份
- 数据库中字段类型转换
- 【秋招总结】面试相关-基础概念
- EasyExcel导出动态合并单元格
- centos将某一目录权限给用户_在Linux上给用户赋予指定目录的读写权限
- 对抗生成网络GAN系列——AnoGAN原理及缺陷检测实战
- 对商标裁定不服怎么办?
- 重磅!2021年报考指南出炉!揭秘最具潜力的高薪专业,这些人才最有“钱途”!...