GDI+(GDIPlus)的功能:
(1) 二维矢量图形的绘制.
比如直线,矩形,圆,椭圆,点等等.它和GDI的不同之处在于它能在点定在浮点数之处.GDI中绘制直线:drawline(int a,int b); 而GDI+有很多重载函数.参数类型接受的范围广了.
(2) 象素绘制功能
很方便实现图像的缩放,剪裁,翻转,复制,格式的转换等功能.
(3) 文字编排
强大的字体类(Font)可以轻松设置各种字体.
GDI+包括40多个类,50多个枚举,6个结构体,及一些独立函数.
Graphic类, Pen类Brush类, Image类,Bitmap类, Font类, Rect类,Point类, Size类, Color类, BitmapData类 ,等等.还有一些独立函数,比如: GdiplusStartup , GdiplusShutdown, 它们的功能是用于GDI+环境的初始化和GDI+资源的释放.
Visual C++ 6 . 0 环境中配制GDI+方法:
(1) 下载GDI+SDK, 从http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip或者从微软网站下载.
(2) 解压GDIPlus.zip,将其中的Includes文件夹和Lib文件夹下的文件分别放入VC98目录下的Includes文件夹和Lib文件夹中.
(3) 在项目属性中添加GDI+静态炼接库. 打开工程选择[project]菜单à[Settings],在下拉列表框中选择Win32Debug,右侧link标签页下的Object/librarymodules输入gdiplus.lib ,单击ok.
(4) 添加必要代码.
1. 打开资源管理器,打开”stafx.h”文件,在其中添加如下代码:
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long *
#include “Gdiplus.h”
using namespace Gdiplus;
#endif
2. 打开视图类,选择应用程序类CXXXApp(XXX为项目名称),为其添加两个成员变量. 第一个:GdiplusStartupInput类型的 m_GdiplusStartupInput 第二个: ULONG_PTR 类型的 m_GdiplusToken
3. 在CXXXApp类中的InitInstance函数中添加如下代码:
// 图像库初始化
GdiplusStartup(&m_GdiplusToken ,&m_GdiplusStartupInput , NULL);
4. 重写CXXXApp类的 ExitInitInstance函数
int CXXXApp::ExitInitInstance()
{
// 关闭GDI+图象库
GdiplusShutdown(m_GdiplusToken);
return CWinApp::ExitInstance();
}
Visual C++ 2005、2008、2010、2012环境中配制GDI+方法:
如果没有GDI+的开发包先去下载,不过自VS2005后的版本都已经包含了GDI+开发包,应该不用下载。(因为Visual C++2005中已经含有GDI+开发包,因此不用下载GDI+SDK.)
(1)在项目属性中添加静态链接库。打开项目,选择[project]菜单à[xxx属性](xxx是项目名称),打开项目属性对话框,展开左侧的配置属性,选择连接器下的输入,然后在右侧的附加依赖项中添加“ gdiplus.lib ” ,单击 确定。
(2)打开资源管理器,打开”stafx.h”文件,在其中添加如下代码:
#include <gdiplus.h>
using namespace Gdiplus ;
(3)打开视图类,选择应用程序类CXXXApp(XXX为项目名称),为其添加两个成员变量. 第一个:GdiplusStartupInput类型的 m_GdiplusStartupInput 第二个: ULONG_PTR 类型的 m_GdiplusToken
(4)在CXXXApp类中的InitInstance函数中添加如下代码:
// 图像库初始化
GdiplusStartup(&m_GdiplusToken, &m_GdiplusStartupInput , NULL);
(5)重写CXXXApp类的ExitInitInstance函数
int CXXXApp::ExitInitInstance()
{
// 关闭GDI+图象库
GdiplusShutdown(m_GdiplusToken);
return CWinApp::ExitInstance();
}