GDI+学习---1.初识GDI+
---恢复内容开始---
GDI+:
GDI+由一组C++类实现,是对于GDI的继承,GDI+不仅优化了大部分GDI性能而且提供了更多特性。允许应用程序开发者将信息显示在显示器或者打印机上,而无需考虑该显示设备的详细情况,GDI+与GDI一样,都具有设备无关性,使得应用程序和图形硬件隔离开来。
GDI+的三个组成部分:
1.二维矢量图形
矢量图形由图元(比如线条、曲线和图形)组成。用户可以在图元文件中记录矢量图像(图形命令的序列)。GDI+提供了Metafile类,可用于记录、显示和保存图元文件。MetafileHeader和MetaHeader类允许您检查图元文件头中存储的数据。
2.图像
某些图片很难或者根本无法用矢量图形来显示,。这种类型的图像可存储为位图,即代表屏幕上单个点颜色的数字数组。
GDI+提供了Image、Bitmap和Metafile类,可用于显示、操作和保存位图,支持BMP、GIF、JPEG、EXIF、PNG、TIFF、ICON、WMF、EMF共9种常见的图像格式。。它们支持众多的图像文件格式,还可以进行多种图像处理的操作。
3.文字
使用各种字体、字号和样式来显示文本。
在MFC中使用GDI+
1.引入头文件
#include <GdiPlus.h>
using namespace Gdiplus;
#pragma comment(lib,"gdiplus.lib")
2.全局变量设置
在APP类中,添加成员变量ULONG_PTR m_ptrToken;此变量用于GDI+的控制
3.初始化GDI+对象
在App类初始化函数InitInstance()中添加:
GdiplusStartupInput gsi;
GdiplusStartup(&m_ptrToken,&gsi,NULL);
4.关闭
在ExitInstance函数中添加
GdiplusShutdown(m_ptrToken);
在OnDraw函数使用GDI+来绘图:
Graphics graphics(this->GetDC()->m_hDC);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawLine(&pen, 0, 0, 100, 100);