关于CListCtrl的图像列表,CImageList加载位图为何不行?

xinyu 2003-11-21 05:35:22
CToolBoxList是从CListCtrl派生的类,在OnCreate中给其添加图像列表,如果位图从资源加载,List中图像显示正常,但现在想自己动态画图,然后加载,结果List中图像却都是黑色的方块。

代码1:(显示正常)

CBitmap bmpIcons;
bmpIcons.LoadBitmap(IDC_SHORTCUTS); //位图资源
m_images.Create(32,32,ILC_COLOR8|ILC_MASK,0,10); //m_images已定义为
m_images.Add(&bmpIcons,RGB(255,0,255)); //CImageList

SetImageList (&m_images, LVSIL_NORMAL);
InsertItem (0,_T("One"),0);
InsertItem (1,_T("Two"),1);
InsertItem (2,_T("Three"),2);
InsertItem (3,_T("Four"),3);


代码2:(显示黑块)

CDC m_MemDC; //.h中定义
CBitmap m_Bitmap; //.h中定义

CDC *pDC=GetDC();
m_MemDC.CreateCompatibleDC(pDC);
m_Bitmap.CreateCompatibleBitmap(pDC,320,32);
ReleaseDC(pDC);
m_MemDC.SelectObject(&m_Bitmap);

m_MemDC.PatBlt(0,0,640,32,WHITENESS); //白色背景

//然后画10个红色的圆
CPen Pen(PS_SOLID,1,RGB(255,0,0));
CPen *pPen=m_MemDC.SelectObject(&Pen);
CRect Rect;
for(int i=0;i<10;i++)
{
Rect.SetRect(i*32,0,i*32+32,32);
m_MemDC.Ellipse(Rect);
}
m_MemDC.SelectObject(pPen);

m_images.Create (32, 32, ILC_COLOR8 | ILC_MASK, 0, 10);
m_images.Add (m_Bitmap, RGB (255, 0, 255));

SetImageList (&m_images, LVSIL_NORMAL);
InsertItem (0,_T("One"),0);
InsertItem (1,_T("Two"),1);
InsertItem (2,_T("Three"),2);
InsertItem (3,_T("Four"),3);

第二种方法可行吗? 错误在什么地方? 帮忙看看!
...全文
136 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lansefeng 2003-12-11
  • 打赏
  • 举报
回复
收藏
brytison 2003-11-30
  • 打赏
  • 举报
回复
挺好。
xinyu 2003-11-22
  • 打赏
  • 举报
回复
一语惊醒梦中人,我已搜到,谢谢!

相关贴见:http://expert.csdn.net/Expert/topic/2369/2369056.xml?temp=.7972528

对照了一下,我的代码里主要是缺少语句:m_MemDC.DeleteDC();
蒋晟 2003-11-21
  • 打赏
  • 举报
回复
CreateCompatibleDC创建的就是一个内容是黑白的DC
要select一个彩色的bitmap之后才会变成彩色的
ljzcom 2003-11-21
  • 打赏
  • 举报
回复
这里搜cimagelist,资料足够解决你的问题啦

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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