您的位置:首页 > 其它

如何在MFC中使用GDI+技术

2008-02-26 15:50 597 查看
1在stdafx.h文件中 引入GDI+头文件

#include <gdiplus.h>
using namespace Gdiplus;

2 初始化GDI+资源和销毁GDI+资源

在项目APP文件中

//声明GDI+全局变量

ULONG_PTR gdiplusToken;

BOOL CMFCAndGDIApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControls()。否则,将无法创建窗口。
InitCommonControls();

//GDI+资源初始化
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&gdiplusToken,&gdiplusStartupInput,NULL);


CWinApp::InitInstance();

// 初始化 OLE 库
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}

//其他系统自动生成的代码

}

//添加一个析构函数用来释放GDI+资源

CMFCAndGDIApp::~CMFCAndGDIApp()
{
GdiplusShutdown(gdiplusToken);
}


3编译时加入GDIplus.lib文件

在IDE中选择“项目|添加现有项目”,把GDIplus.lib文件添加进来,该文件一般在C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Lib目录下

4好了,现在可以在MFC中使用GDI+了

void CMFCAndGDIView::OnDraw(CDC* /*pDC*/)
{
CMFCAndGDIDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

//using GDI+
Graphics myg(this->GetDC()->m_hDC);
Pen pen(Color(255,0,255));
SolidBrush brush(Color(255,0,255));

CRect rect;
this->GetClientRect(&rect);
myg.DrawEllipse(&pen,30,30,100,100);


// TODO: 在此处为本机数据添加绘制代码
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: