随笔 - 224  文章 - 41  trackbacks - 0
<2010年1月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

享受编程

常用链接

留言簿(11)

随笔分类(159)

随笔档案(224)

文章分类(2)

文章档案(4)

经典c++博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜

包含ATL头文件
在stdafx.h 添加
#include <atlimage.h>

在本地加载图片。
m_Image.Load(L"D:\\我的文档\\Visual Studio 2005\\Projects\\20100115\\CCImageTestDlg\\CCImageTestDlg\\res\\my.png");
 CClientDC dc(this);
 m_Image.Draw(dc, 0, 0, m_Image.GetWidth(), m_Image.GetHeight(), 0, 0, m_Image.GetWidth(), m_Image.GetHeight());

资源中文件的显示:
bool ImageFromIDResource(void)
{
 UINT nID = IDR_PNG1;
 LPCTSTR sTR = _T("PNG");

 //UINT nID = IDB_BITMAP1;
 //LPCTSTR sTR = RT_BITMAP;

 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
 m_Image.Load(pstm);

 CClientDC dc(this);
 m_Image.Draw(dc, 0, 0, m_Image.GetWidth(), m_Image.GetHeight(), 0, 0, m_Image.GetWidth(), m_Image.GetHeight());
 // free/release stuff
 GlobalUnlock(m_hMem);
 pstm->Release();
 FreeResource(lpRsrc);

 return false;
}

posted on 2010-03-22 16:37 漂漂 阅读(1044) 评论(2)  编辑 收藏 引用

FeedBack:
# re: CImage的使用[未登录] 2011-02-09 16:37 zzz
哥呀,第一句那个load带上L的话出现这个:error C2664: 'Load' : cannot convert parameter 1 from 'unsigned short [34]' to 'const char *'

去掉就OK了,那个L你放这里的原因是?

另外m_Image.Draw(dc, 0, 0, m_Image.GetWidth(), m_Image.GetHeight(), 0, 0, m_Image.GetWidth(), m_Image.GetHeight());
我这里老是提示:error C2039: 'Draw' : is not a member of 'CvvImage'  回复  更多评论
  
# re: CImage的使用 2011-02-25 22:50 深深
你要用vs2005 @zzz
  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理