Windows的GDI有很多不尽人意的地方,使用起来颇为费力,用户要自己管理GDI的各种资源,否则内存泄露的问题立刻就找到你的头上来。有了GDIplus以后,好了,所有这些GDIplus都帮你解决了, 封装完整的各类画笔,刷子任你自由的挥霍吧。
GDIplus所有接口来自由Gdiplus.dll,此文件在windowsXP 和windows 2003上都已经包含,但低版本的windows需要到微软网站上下载。其中的 gdiplus.lib以及众多的头文件都可以在平台SDK里发现,装有VS2003并且选中平台SDK的朋友应该可以在相应目录中发现这些文件。Codeguru的相应下载网址:
http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip
跟我来,看看GDIplus的使用(我的环境是VC6++):
以下内容为程序代码:
//必要的宏 以及头文件 #define UNICODE #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif
#include <windows.h> #include <gdiplus.h> //你安装的gdiplus.h的位置 using namespace Gdiplus; #pragma comment(lib, "gdiplus.lib"[img]/images/wink.gif[/img] //link gdiplus.lib
//初始化gdiplus的环境 GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken;
// Initialize GDI+. GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
| |
以下内容为程序代码:
//关闭gdiplus的环境 GdiplusShutdown(gdiplusToken);
| |
在需要绘制图形的地方,建立一个Graphics对象,使用此对象可以绘制点,直线,曲线,矩形等常见图形。也可以显示、转换、另存Bmp,jpg,png等图形;
给一个简单的绘制字符串的例子,如果您对它感兴趣的话,可以到微软msdn网站学习GDIplus的简单教程(
GDIplus教程)。
以下内容为程序代码:
Graphics graphics(hWnd); FontFamily fontFamily(L"隶书"[img]/images/wink.gif[/img]; Font font(&fontFamily, 24, FontStyleRegular, UnitPixel); PointF pointF(30.0f, 10.0f); SolidBrush solidBrush(Color(255, 0, 0, 255)); graphics.DrawString(L"你好,GdiPlus!", -1, &font, pointF, &solidBrush);
| |
很简洁清爽的代码,用起来真是舒心!