前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【专业技术】GDI+基本用法简介

【专业技术】GDI+基本用法简介

作者头像
程序员互动联盟
发布2018-03-15 16:31:56
1.6K0
发布2018-03-15 16:31:56
举报

存在问题:

GDI+怎么使用?

解决方案:

在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。

GDI+是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。顾名思义,GDI+是以前版本GDI的继承者,出于兼容性考虑,Windows XP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的Windows版本中GDI进行了优化,并添加了许多新的功能。比如抗锯齿、渐变画刷、样条函数、持久路径对象、变形矩阵对象、可伸缩区域、混合、更多图形格式支持等等。

利用GDI+画图有几乎固定的步骤,下面简单结束一下。

1、包含头文件及命名空间声明: 一般都是按如下套路包含头文件、库和命名空间 #include <gdiplus.h> #pragma comment(lib, "gdiplus.lib") using namespace Gdiplus;

2、初始化GDI+对象: 初始化固定套路如下: GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

3、使用GDI+对象进行画图: 比如下面列出了一些画点、线、曲线、填充等图形。 Graphics graphics(GetDC(hWnd)); Pen greenPen(Color::Green, 3); //定义笔 Point point1(100, 100); //画点 Point curvePoints[4] = { point1, point2, point3, point4}; Point* pcurvePoints = curvePoints; // Draw the curve. graphics.DrawCurve(&greenPen, curvePoints, 4); //画曲线

SolidBrush redBrush(Color::Red); //定义画刷 graphics.FillEllipse(&redBrush, Rect(95, 95, 10, 10)); //填充

//画抗锯齿直线 graphics.SetSmoothingMode(SmoothingModeHighQuality); graphics.DrawLine(&pen, 10, 200, 200, 300);

SolidBrush brush(Color(255, 0, 0, 255)); FontFamily fontFamily(L"Times New Roman"); Font font(&fontFamily, 24, FontStyleRegular, UnitPixel); //定义字体 PointF pointF(300.0f, 400.0f); graphics.DrawString(L"Hello World!", -1, &font, pointF, &brush); //写文本

4、结束释放GDI+: 直接按套路调用如下函数即可清除GDI+ GdiplusShutdown(gdiplusToken);

使用GDI+的总体套路就是按照上面过程进行,由于GDI+就是为画图而生,所以在学会套路后就是学习第三部分的各种画图方法调用,这方面内容比较多,以上只是一些常用、简单的方法,这个就不一一列举,网上有很多资料可以参考。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档