现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

如何在VS2010中的MFC中配置GDI+

2013-01-14 23:52 工业·编程 ⁄ 共 1081字 ⁄ 字号 暂无评论

首先,VS2010中已经有GDI+SDK包的,不需要额外下载
1:在stdafx.h文件中加入下面3行代码,添加相应的头文件和库
  #pragma comment( lib, "gdiplus.lib" )
  #include "gdiplus.h"
  using namespace Gdiplus;
2:定义一个全局变量 ULONG_PTR m_gdiplusToken;
其中,ULONG_PTR是一个DWORD数据类型,该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。
3:使用GDI+函数前,先,最好放在OnInitDialog()中
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
  Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL); 
4:使用完GDI+函数后,需要卸载GDI+
  Gdiplus::GdiplusShutdown(m_gdiplusToken);
这就是基本的配置了.

附:

BOOL GetEncoderClsid(const WCHAR* format, CLSID* pCLSID)
{
UINT num = 0;
UINT size = 0;
ImageCodecInfo* pImageCodecInfo = NULL;
GetImageEncodersSize(&num, &size);
if(size == 0){
return FALSE;
}
pImageCodecInfo = (ImageCodecInfo *)(malloc(size));
if(pImageCodecInfo == NULL)
return FALSE;
GetImageEncoders(num, size, pImageCodecInfo); 
// Find for the support of format for image in the windows
for(UINT i = 0; i < num; ++i)

//MimeType: Depiction for the program image  
if( wcscmp(pImageCodecInfo[i].MimeType, format) == 0)
{  
*pCLSID = pImageCodecInfo[i].Clsid; 
free(pImageCodecInfo); 
return TRUE;  
}  
}  
free(pImageCodecInfo);  
return FALSE; 
}

给我留言

留言无头像?