今天兴致比较高昂,虽然已经是23点了,所以还是决定再写一篇,供各位技术同仁参考。
最近由于学习C#,对于里面的GDI+绘图的强大功能不得不刮目相看,当然就想将其用在我最熟悉的VC++语言中来。但是VC6却并不包含GDI+包,所以还得必须自己去微软网站上下载开发包。对于VC2005来说,就不必了,因为已经包含。
下面首先谈谈如何在VC6中使用GDI+,步骤总结如下:
1、将开发包中的include里面的头文件copy到vc安装目录下的文件夹下:C:/Program Files/Microsoft Visual Studio/VC98/Include
2、如果没有安装vc7或以上平台的win9x或win2k平台(winxp已包含),还需将开发包中的文件gdiplus.dll copy到windows system32文件夹下。
3、将lib文件夹下的lib文件copy到开发项目的目录下(或者是copy到C:/Program Files/Microsoft Visual Studio/VC98/Lib中,如此无需每个项目都这样COPY此文件,推荐使用),在stdafx.h中加入以下代码:
#pragma comment(lib, "gdiplus.lib")
#define ULONG_PTR ULONG
#include <gdiplus.h>
using namespace Gdiplus;
4、在app类中增加变量:
ULONG_PTR m_pGdiToken;
5、在InitInstance函数中,增加代码:
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&m_pGdiToken,&gdiplusStartupInput,NULL);
6、在ExitInstance函数中,增加以下代码
GdiplusShutdown(m_pGdiToken);
7、此时编译应该能够通过,执行前,检查一下GDIPLUS.DLL是否在系统目录或当前目录下。
8、如果第7步编译运行正常,OK,恭贺你,至此你可以使用GDI+了。
在VC8中可以免去1-2两个步骤,其它同样照做即可。
下面给出一个示例代码段:
- void CTestView::DrawWithGDIPlus(CDC *pDC)
- {
- Graphics graphics(pDC->m_hDC);
- graphics.TranslateTransform(10,10);
- // Pen can also be constructed using a brush or another pen. There is a second parameter - a width which defaults to 1.0f
- Pen blue (Color(255, 0, 0, 255));
- Pen red (Color(255, 255, 0, 0));
- int y = 256;
- int x = 0;
- for (x = 0; x < 256; x += 5)
- {
- graphics.DrawLine(&blue, 0, y, x, 0);
- graphics.DrawLine(&red, 256, x, y, 256);
- y -= 5;
- }
- for (y = 0; y < 256; y++)
- {
- Pen pen(Color(y, 0, 255,0)); // A green pen with shifting alpha
- graphics.DrawLine(&pen, 0, y, 256, y);
- // The sleep is to slow it down so you can watch the effect
- Sleep(5);
- }
- for (x = 0; x < 256; x++)
- {
- Pen pen(Color(x, 255, 0, 255)); // A green pen with shifting alpha
- graphics.DrawLine(&pen, x, 100, x, 200);
- // The sleep is to slow it down so you can watch the effect
- Sleep(5);
- }
- }
你可以在CView的OnDraw函数中调用如下语句即可:
DrawWithGDIPlus(pDC);
编译运行即可看到美丽的GDI+绘出来的漂亮图案。
申明:未经许可,也可转载。如果转载,请注明出处!!!