首页 > 代码库 > 数字图像处理 GDI+环境的初始化
数字图像处理 GDI+环境的初始化
注:如果包含<gdiplus.h> 后出现编译错误,那么看看stdafx.h中有没有定义WIN32_LEAN_AND_MEAN,有的话注释掉就OK
【1】添加文件头与库
#include <gdiplus.h> using namespace Gdiplus; #pragma comment(lib, "GdiPlus.lib")
【2】添加有效成员(保证使用gdi+的地方都有效)
ULONG_PTR m_gdiplusToken;
Gdiplus::GdiplusStartupInput StartupInput; GdiplusStartup(&m_gdiplusToken,&StartupInput,NULL);
【4】销毁gdi+资源(使用gdi+之后)
Gdiplus::GdiplusShutdown(m_gdiplusToken);
Gdiplus::Graphics graphics(hDC); Gdiplus::SolidBrush solidBrush(Gdiplus::Color::Red); Gdiplus::FontFamily fontFamily(L"宋体"); Gdiplus::Font font(&fontFamily, 16, FontStyleRegular, UnitPoint); graphics.DrawString(L"GDI+程序示意", -1, &font, Gdiplus::PointF(0, 0), &solidBrush); graphics.ReleaseHDC(hDC);
【6】为了方便使用,将初始化代码和销毁代码放到一个类中,使用时只需要定义这个类的一个global实例就可以了 (如果使用gdi+的地方比较多,建议将初始化放到主应用程序的初始化中,提高效率,而不是api中)
class GdiPlusIniter{ public: GdiPlusIniter(){ Gdiplus::GdiplusStartupInput StartupInput; GdiplusStartup(&m_gdiplusToken,&StartupInput,NULL); } ~GdiPlusIniter(){ Gdiplus::GdiplusShutdown(m_gdiplusToken); } private: ULONG_PTR m_gdiplusToken; };
参考文章:
http://www.cnblogs.com/hdtianfu/archive/2013/05/10/3071479.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。