GDI+学习笔记
一、什么是GDI+?
1、GDI+是图形设备接口加(Graphics Device Interface Plus ),我们可以利用GDI+提供的众多函数就可以很方便的在屏幕、打印机及其他输出设备上进行输出图形、文本。是系统与绘图程序之间的信息交换,用来在windows 上开发图形图像应用程序,开发人员可以很轻松地绘制他们的用户界面屏幕。GDI+ API 中包含 54 个类、12 个函数、6 类(226 个)图像常量、55 种枚举和 19 种结构
二、GDI+的功能
(一)、主要的三种功能
1、二维矢量图形
2、图像处理
3、文字显示
(二)、GDI+的组成
1、GDI+的核心功能——Graphics 类
(1)、什么是Graphics 类:使用Graphics类我们可以调用它里面的函数进行绘制直线、曲线、图形、图像和文本等,非常的方便。
(2)、Graphics 类的常用方法
绘制事件名 | 功能 |
---|---|
DrawLine[s] | 画直线[折线] |
DrawRectangle[s] | 画矩形[组] |
DrawEllipse | 画[椭]圆 |
DrawArc | 画[椭]圆弧 |
DrawPolygon | 画多边形 |
DrawPie | 画饼图 |
填充事件名 | |
FillRectangle[s] | 画填充矩形[组] |
FillEllipse | 画填充[椭]圆 |
FillPolygon | 画填充多边形 |
2、GDI+的画图对象
(1)、常用的画图对象
函数名 | 功能 |
---|---|
Color | 填充颜色 |
Pen | 画笔 |
Brush | 画刷 |
Font | 字体 |
Point[F] | 描述点坐标(整数浮点型) |
Rect | 矩形类 |
(2)、这些对象的应用
-
Color类
Color(Alpha,0,0,0)//透明度alpha -
Pen类
Pen mypen(Color::Black,1) -
Brush类
SolidBrush 实心刷
HatchBrush 条纹刷
TextureBrus纹理刷
LinearGradientBrush线性渐变刷
PathGradientBrush路径渐变刷 -
Font类
Font font(字体名,字号)
Font font(L"隶书",100) -
Point类
Point P1(100,100)//描述一个坐标点 -
Rect类
Rect rect(70,40,250,120)//画矩形
三、使用MFC编程GDI+
(一)、编程环境准备:
1、项目添加静态库gdiplus.lib 和命名空间:
为了运行 GDI+ 应用程序,在操作系统平台中,必须安装动态链接库 Gdiplus.dll。 该动态链接库所对应的静态库文件为 GdiPlus.lib,而且它不是 C++和 MFC 的缺省链接 库。所以,必须在项目设置,添加该库作为链接器输入的附加依赖项,vs2019在头文件pch.h中添加头文件gdiplus.h。因为在 Gdiplus.h 头文件中,将所有的 GDI+的类、函数、常量、枚举和结构等都定义 在了命名空间 Gdiplus 中。所以,一般在 GDI+程序中,都必须在头文件pch.h中使用如下的命名空间声明: using namespace Gdiplus;
2、GDI+初始化与清除
为了在 MFC 应用程序中使用采用 C++封装的 GDI+ API,必须在 MFC 项目的应用程序类中, 调用 GDI+命名空间中的 GDI+启动函数 GdiplusStartup 和 GDI+关闭函数 GdiplusShutdown, 来对 GDI+进行初始化 -
CmyGDIApp应用程序类中添加成员变量
GdiplusStartupInput
ULONG_PTR //供关闭GDI+函数使用 -
InitInstance() 中添加
初始化GdiplusStartup(&GdiToken, &GdiInput, NULL); -
ExitInstance( ) 中添加
清除 GdiplusShutdown(GdiToken);
四、以上是我前几周对于GDI+学习的粗略理解,一个大致的介绍,对于细致的研究和实例我会再接再厉,早日赶上老师的进度,我必须每天不断的浏览文档来熟悉知识,坚持坚持再坚持。以上是我的GDI+学习笔记,由于知识水平有限,望各位道友指正以促进我成长,谢谢观看。