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();
}
7、在OnDraw函数中添加绘制代码
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);
}
8、结果