GDI+学习---1.初识GDI+

Posted xslwm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.清理

  在程序析构函数中添加

  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);

 

以上是关于GDI+学习---1.初识GDI+的主要内容,如果未能解决你的问题,请参考以下文章

GDI+学习---2.编程模式

学习笔记:利用GDI+生成简单的验证码图片

从零开始学习GDI+

GDI+学习笔记--未完待续

《逐梦旅程:Windows游戏编程之从零开始》学习笔记之二:GDI框架

GDI双缓冲的一些学习