如题,使用MFc开发的。我想的的一个方法是是把资源位图提取出来保存到一个位图文件中再用Bitmap bmp(filepath)载入,但是感觉太繁琐,有没有更简单的方法。之前搜到一篇文章说使用下面的方法就可以,
CBitmap bmp;
bmp.LoadImage(IDB_BITMAP1);
Bitmap bm((HBITMAP)bmp);
但是实测不能用GDI+BitmapMFC
CBitmap bmp;
bmp.LoadImage(IDB_BITMAP1);
Bitmap bm((HBITMAP)bmp);
但是实测不能用GDI+BitmapMFC
解决方案 »
- 主线程和子线程互斥问题
- vc中Clistctrl调用setcheck()函数时触发LVN_ITEMCHANGED消息的问题?
- VC2005中有profile测试功能吗?
- 直线的反走样(Anti-aliasing)
- VARIANT 输出字符串的问题,高手快来看看。在线等。
- [急]关于DLL中输出string类型的问题
- 如何实现图元的半透明叠加?
- 使用自建类时出现连接错误error LNK2001: unresolved external symbol,编译没问题,详细见内,请教解决方法。
- 请问怎么得到一个网络中交换机的信息!
- 新手问题:在对话框程序中,若要定义一个全局变量(CString g_str),应在何处定义,如何定义?
- 大家有没有遇到过这种问题?
- 关于WebBrowser隐藏滚动条的问题
ImageFromIDResource(IDR_BG,_T("PNG"),m_pImageBG);BOOL 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;
}