今儿在群里看到有人问GDI+的事,说是用的VC6,不知道怎么用GDI+。看见他就好像看见了一年前的自己。
当时的自己也是,不知道怎么用GDI+,总觉得GDI+好像很难,是很高深的技术,所以就一直不敢去碰,也就一直没去找任何相关的资料,一直苦逼的用着GDI。直到有一天遇到一个问题,要显示png图片,GDI做不了了,找了相关资料,说要用GDI+或者开源库。当时自己的水平完全是个初学者,看到“开源库”3个字,立马就吓趴下了,一想开源库那么多代码,看看都要好长时间,还不一定看得懂,还要编译什么的,想想就麻烦。相比之下至少GDI+还是现成的。于是果断放弃开源库,开始查找GDI+的相关资料,查了以后发现,其实也没有想象的那么难,于是乎慢慢开始研究,也慢慢上手了,学到不少东西,也发现GDI+确实方便。
现在想想,幸好当初接触了GDI+,虽然使用过程中碰到不少问题,但是都一一解决了,也正因为碰到了这些问题,自己学到了很多东西,感觉成长起来了。
由于这次的经历,让自己以后碰到什么没见过的东西,都保持着不畏惧的心里,迎难而上,才能更快进步。
想起一句话:克服恐惧最好的办法就是面对它。
下面给出VC6下使用GDI+的方法,简单说就5步:
- 下载GDIPlus库
- 解压并加入工程文件
- 导入lib
- 包含头文件
- 必要的初始化
就这么简单的5步,就可以在VC6下使用GDI+了。
下载GDIPlus库
网上可以下载GDI+库的地方很多,我这里上传了一份,地址在:
解压并加入工程文件
解压下载到的库文件,将文件夹放入工程文件目录下。
导入lib
导入lib有2种方法,一种是代码导入,我比较喜欢这种,因为直接复制黏贴就可以,很方便:
#pragma comment (lib, "gdiplus.lib")
一般加载stdafx.h文件里,方便移到其他工程里。
另外一种是在工程属性中配置,这里就补说了。
包含头文件
这个也很简单,一般在stdafx.h里面加入:
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long *
#include "GDIInc/GdiPlus.h"
using namespace Gdiplus;
#endif
必要的初始化
//定义2个变量
GdiplusStartupInput m_gdipInput;
ULONG_PTR m_pGdiToken;
//GDI+初始化
GdiplusStartup(&m_pGdiToken, &m_gdipInput, NULL);
//使用GDI+
...
//解除GDI+
GdiplusShutdown(m_pGdiToken);