GDI+ Image通过资源ID构建对象
2009-11-23 16:13
483 查看
BOOL CSmalltmpdemoDlg::ImageFromIDResource(UINT nID, LPCTSTR sTR, Image * & pImg) { HINSTANCE hInst = AfxGetResourceHandle(); HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(nID),sTR); // type if (!hRsrc) return FALSE; // load resource into memory DWORD len = SizeofResource(hInst, hRsrc); BYTE* lpRsrc = (BYTE*)LoadResource(hInst, hRsrc); if (!lpRsrc) return FALSE; // Allocate global memory on which to create stream HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len); BYTE* pmem = (BYTE*)GlobalLock(m_hMem); memcpy(pmem,lpRsrc,len); IStream* pstm; CreateStreamOnHGlobal(m_hMem,FALSE,&pstm); // load from stream pImg=Gdiplus::Image::FromStream(pstm); // free/release stuff GlobalUnlock(m_hMem); pstm->Release(); FreeResource(lpRsrc); return TRUE; }
调用方式:
Image
* pImage = NULL;
ImageFromIDResource(IDR_PNG_NO_PIC, L"png", pImage);
delete
pImage;
/////////////////////////////////////////////////////////////////////////
Image
* pImage = NULL;
ImageFromIDResource(IDR_PNG_NO_PIC, L"jpg", pImage);
delete
pImage;
//////////////////////////////////////////////////////////////////////////
Image
* pImage = NULL;
ImageFromIDResource(IDR_PNG_NO_PIC, L"bitmap", pImage);
delete
pImage;
//////////////////////////////////////////////////////////////////////////
其中的 L"png", L"jpg", L"bitmap"为导入到vc资源的类别,并且不区分大小写。
相关文章推荐
- GDI+ Image通过资源ID构建对象
- 通过字符串构建查找图片资源ID,并取得Drawable对象
- 通过字符串构建查找图片资源ID,并取得Drawable对象
- 通过字符串构建查找图片资源ID
- 通过字符串构建查找图片资源ID
- 通过字符串构建查找图片资源ID
- 通过反射的方法获取资源id
- 三行代码实现gdi+ Bitmap对象导入资源文件位图
- 通过图片的url获取Bitmap对象,给Imageview使用
- Flex编程注意之直接获取某个组件的对象(this[]用法)通过id获取控件
- android通过资源名称去获得资源ID
- 利用反射机制,通过资源名字得到资源的ID
- 【Res id】通过图片名称获取资源图片
- 在servlet中通过servletcontext对象读取资源文件的模板代码
- Android 通过字符串来获取R下面资源的ID 值 文字资源
- Android 通过字符串来获取R下面资源的ID 值
- js获取封装对象/通过id tag className
- 通过资源文件名称获取资源id
- Android通过反射获取资源ID
- 修复系统表(表错误: 对象 ID 2。text、ntext 或 image 节点(位于页 (1:875),槽 0,文本 ID 177078272)与该节点位于页 (1:500),槽 14 处的引用不匹配)