难道只有用LoadImage之类载入的位图才能够在listctrl中显示吗?

grantchan 2003-09-12 12:10:55
很奇怪, 我的程序如下:
CBitmap Bitmap;
if( Bitmap.CreateCompatibleBitmap(pDC, 80, 60) )
{
CBitmap* pOldBitmap = dcMem.SelectObject(&Bitmap);
if( pOldBitmap )
{
CRect rc(0, 0, 80, 60);
dcMem.Rectangle(&rc);

SaveBitmapToFile((HBITMAP)Bitmap, "a.bmp");
HBITMAP hBitmap = (HBITMAP)LoadImage(GetModuleHandle(NULL), "a.bmp", IMAGE_BITMAP, 80, 60, LR_LOADFROMFILE);
BOOL b = m_ilThumbnail.Replace(1, CBitmap::FromHandle(hBitmap), NULL);
b = m_lstThumbnail.InsertItem(1, NULL, 1); // 这里插入的item可以显示出来

b = m_ilThumbnail.Replace(2, &Bitmap, NULL);
b = m_lstThumbnail.InsertItem(2, NULL, 2); // 这里插入的就不能显示了, 显示出来的是一块全黑的位图
...
}
...
}
难道只有用LoadBitmap或LoadImage之类载入的位图才能够在listctrl中显示吗?
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
grantchan 2003-09-12
  • 打赏
  • 举报
回复
谢谢 whoo(谁), 按照你的方法, 终于解决了
whoo 2003-09-12
  • 打赏
  • 举报
回复
>> b = m_ilThumbnail.Replace(2, &Bitmap, NULL);

此时Bitmap还在dcMem中,需要把它SelectObject出来才能使用。

eg:
dcMem.SelectObject(pOldBitmap);
b = m_ilThumbnail.Replace(2, &Bitmap, NULL);
awant2k 2003-09-12
  • 打赏
  • 举报
回复
ExtractIcon的也可以啊(例如从工具栏)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧