GDI+是个好东西,不用就落伍了。呵呵。
今天从网上搜集了一大推关于如何在VC6.0中使用GDI+的资料,但是自己功力有限,费了好长的时间才成功。其中还有好多的东西值得去看看,不过天色已晚,故匆匆总结了一下:
1. 首先从http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip下载GDI+. 该文件中包含三个文件,分别是includes, lib 和 gdiplus.dll.
2. 将includes 和 lib文件分别拷贝到vc路径中对应的includes和lib中(gdiplus.dll没有用到)。
3. 新建一个SDI工程,取名为Test.
4. 在StdAfx.h头文件中添加如下代码:
#include <comdef.h>//初始化一下com口
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#include "GdiPlus.h"
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")
#endif
5. 在TestView.h中声明两个变量
ULONG_PTR m_pGdiToken;
GdiplusStartupInput m_gdiplusStartupInput;
6. 在TestView.cpp 的构造函数和析构函数中分别添加如下代码:
CTestView::CTestView()
{
//装载gdi+
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
}
CTestView::~CTestView()
{
GdiplusShutdown(m_pGdiToken);
}
7. 编译就好了。
8. 从网上找了一个小程序测试了一下
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
HDC hdc = pDC->GetSafeHdc();
Graphics mygraphics(hdc);
SolidBrush brush(Color(100,0,0,255));
FontFamily fontFamily(L"Latha");
Font font(&fontFamily,1,FontStyleRegular,UnitInch);
PointF pointF(5,5);
mygraphics.DrawString(L"Hello Word!",-1,&font,pointF,&brush);
}
9. 结果