C++列表视图控件怎样添加图片

 我来答
爱土豆也Cb
2017-01-04 · TA获得超过256个赞
知道小有建树答主
回答量:1267
采纳率:0%
帮助的人:446万
展开全部
ATLINLINE HBITMAP AtlLoadGdiplusImage(ATL::_U_STRINGorID bitmap, ATL::_U_STRINGorID type = (UINT) 0)
{
USES_CONVERSION;
static bool s_bInitied = false;
if( !s_bInitied ) {
s_bInitied = true;
Gdiplus::GdiplusStartupInput gsi;
Gdiplus::GdiplusStartupOutput gso;
ULONG uToken = 0;
Gdiplus::GdiplusStartup(&uToken, &gsi, &gso);
}
Gdiplus::Bitmap* pBitmap = NULL;
if( HIWORD(bitmap.m_lpstr) != NULL ) {
// Load from filename
pBitmap = new Gdiplus::Bitmap(T2CW(bitmap.m_lpstr));
}
else if( type.m_lpstr != NULL && type.m_lpstr != RT_BITMAP ) {
// Loading PNG, JPG resources etc
WTL::CResource res;
if( !res.Load(type, bitmap) ) return NULL;
DWORD dwSize = res.GetSize();
HANDLE hMemory = ::GlobalAlloc(GMEM_MOVEABLE, dwSize);
if( hMemory == NULL ) return NULL;
::memcpy(::GlobalLock(hMemory), res.Lock(), dwSize);
::GlobalUnlock(hMemory);
IStream* pStream = NULL;
if( FAILED( ::CreateStreamOnHGlobal(hMemory, TRUE, &pStream) ) ) {
::GlobalFree(hMemory);
return FALSE;
}
pBitmap = new Gdiplus::Bitmap(pStream);
pStream->Release();
}
else {
// This only loads BMP resources
pBitmap = new Gdiplus::Bitmap(_Module.GetResourceInstance(), (LPCWSTR) (UINT) bitmap.m_lpstr);
}
if( pBitmap == NULL ) return NULL;
HBITMAP hBitmap = NULL;
pBitmap->GetHBITMAP(NULL, &hBitmap);
delete pBitmap;
return hBitmap;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式