GDI+forVC6.0和本例源代码下载
1、新建一单文档工程GDITEST。
2、在GDITEST下新建
\Bin目录放置可执行文件,
\Inc\GDIPlus目录放置GDIPlus头文件,
\Lib\GDIPLUS目录放置GDIPlus的lib文件,
gdiplus.dll放置在工程目录下,注意dll与头文件lib文件版本的对应,一般为5.0.3.49版gdiplus。
3、配置包含文件路径和lib文件路径。
4、在stdafx.h中添加ULONG_PTR宏定义(这是GDIPlus中的一个定义,在老版本的VS中没有定义过)和gdiplus头文件,注意ULONG_PTR一定要在gdiplus头文件之前。
#define ULONG_PTR ULONG #include "gdiplus.h" using namespace Gdiplus;5、在应用类App类中添加成员变量m_gdiplusToken,其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。
ULONG_PTR m_gdiplusToken;
5、在应用类的InitInstance函数中最开始位置添加GDI+的初始化代码
BOOL CGDITESTApp::InitInstance() { Gdiplus::GdiplusStartupInput gdiplusStartupInput; Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); }6、然后重载ExitInstance虚函数(如果没有)
int CGDITESTApp::ExitInstance() { // TODO: Add your specialized code here and/or call the base class Gdiplus::GdiplusShutdown(m_gdiplusToken); return CWinApp::ExitInstance(); }
void CGDITESTView::OnDraw(CDC* pDC) { CGDITESTDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here Graphics graphics( pDC->m_hDC ); GraphicsPath path; // 构造一个路径 path.AddEllipse(50, 50, 200, 100); // 使用路径构造一个画刷 PathGradientBrush pthGrBrush(&path); // 将路径中心颜色设为蓝色 pthGrBrush.SetCenterColor(Color(255, 0, 0, 255)); // 设置路径周围的颜色为蓝芭,但alpha值为0 Color colors[] = {Color(0, 0, 0, 255)}; INT count = 1; pthGrBrush.SetSurroundColors(colors, &count); graphics.FillRectangle(&pthGrBrush, 50, 50, 200, 100); LinearGradientBrush linGrBrush( Point(300, 50), Point(500, 150), Color(255, 255, 0, 0), // 红色 Color(255, 0, 0, 255)); // 蓝色 graphics.FillRectangle(&linGrBrush, 300, 50, 200, 100); }