利用GDI+可以很方便的在用户的控件上显示自己的图片,图片格式支持BMP,Graphics Interchange Format (GIF),Joint Photographic Experts Group (JPEG),Exchangeable Image File (EXIF),Portable Network Graphics (PNG),Tag Image File Format (TIFF)等。
Visual C++ 2008中已经包含GDI+开发所需的所有东西。如果是VC++ 6.0,则需要下载GDI+支持包。在微软官方网站下载时需认证Windows为正版,我们可从这个地址下载:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip。一个完整的GDI+支持包至少包括如下文件:
(1)头文件:gdiplus.h
(2)动态链接库的.lib文件:gdiplus.lib
(3)动态链接库的.dll文件:gdiplus.dll
VC中GDI+的初始化工作:
1、(only for VC6):在工程属性中添加GDI+头文件和库文件的位置
2、动态引用lib文件:
#include
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;
3、初始化和关闭GDI+的环境
需要定义的变量:
ULONG_PTR gdiplusToken; //可定义为全局变量,在初始化和关闭时都要用到
GdiplusStartupInput gdiplusStartupInput; //可定义为局部变量,仅在初始化时用到
(说明:在VC++ 6.0中ULONG_PTR未定义,需要定义为:
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif)
初始化GDI+:
在CWinApp派生类的InitInstance函数或CDialog派生类的OnInitDialog函数中加入:
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
关闭GDI+:
GdiplusShutdown(gdiplusToken);
4、图片显示
CDC *pDC = GetDC();
Graphics graphics(pDC->m_hDC);
Image image(L"1.jpg", TRUE); //注意:Image构造函数的第一个参数类型为const WCHAR*,所以需要为宽字符!!
graphics.DrawImage(&image, 10, 10);
至此,已经可以在自己的控件上显示图片了。
更多关于GDI+的使用参考: