c++-MFC CListView 加载小图标的问题

问题描述

MFC CListView 加载小图标的问题
m_editFont.CreatePointFont(160, "宋体");
    SetFont(&m_editFont);

    CImageList m_Imagelist;
    CBitmap bitmap;
    m_Imagelist.Create(32, 32, ILC_COLOR24, 2, 1);
    bitmap.LoadBitmap(IDB_BITMAP11);

    CRect rect;
    GetClientRect(&rect);

    ptheList = &GetListCtrl();
    ptheList->ModifyStyle(0, LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SORTASCENDING);
    ptheList->SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);

    ptheList->SetImageList(&m_Imagelist, LVSIL_SMALL);

    ptheList->InsertColumn(0, "默认笔记", LVCFMT_LEFT, rect.Width(), 0);

    int pos;
    pos = ptheList->InsertItem(1, "123", 0);
    pos = ptheList->InsertItem(2, "321", 0);
}

这样运行出来的图标是空白的。。调试发现 m_Imagelist 和 bitmap 都没有成功把位图加载进去。。为什么。。是哪里错了?

解决方案

imagelist是否加载bitmap成功了没,图片资源需要能符合格式

解决方案二:

这个要看你的资源了,ILC_COLOR24怎么写的,大小、颜色深度是不是和m_Imagelist所要求的一致。

解决方案三:

知道问题在哪了。。应该是ImageList没有Add的原因。。
以下把成功代码贴出来:

  CImageList *m_Imagelist;
    m_Imagelist = new CImageList();
    m_Imagelist->Create(32, 31, ILC_COLOR24, 0, 4);
    CBitmap bitmap;
    bitmap.LoadBitmap(IDB_BITMAP11);
    m_Imagelist->Add(&bitmap, RGB(0, 0, 0));
    bitmap.DeleteObject();

    ptheList->SetImageList(m_Imagelist, LVSIL_SMALL);

    ptheList->InsertColumn(0, "默认笔记", LVCFMT_LEFT, rect.Width(), 0);
    ptheList->InsertItem(0, "默认笔记", 0);

不过调试到m_Imagelist->Add(&bitmap, RGB(0, 0, 0)); 时发现 m_ImageList和bitmap其实一直都显示<无可用信息....>
就好像图片资源没加载进去一样。。但是显示是正常的了。。这里我也不大清楚这个所谓的无可用信息是什么意思。。各位能否解释一下。。

解决方案四:

Rebuild一下再看看呢?

时间: 2024-08-19 09:23:07

c++-MFC CListView 加载小图标的问题的相关文章

vs2010 单文档MFC 通过加载位图文件作为客户区背景

实现效果: 这个其实是一个非常常见的功能,大家都会考虑给自己简单的工程做一个背景界面.其实只要在view类中重载OnEraseBkgnd()这个函数就好了. 代码如下: BOOL CdddView::OnEraseBkgnd(CDC* pDC) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CString string("b.bmp"); HBITMAP hbitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),strin

网页前端开发,对于图片慢加载简介

技术背景       现在的网页系统,对于一些对图片资源比较多,并且一次性无法浏览完整个网页的情况下,图片慢加载可以提高客户端的体验,如IT大头:淘宝,网易,新浪等等...   技术原理   技术说穿了其实也就那么回事,懂了就简单了,呵呵~      1.   预设图片的属性,"src"指向一个小图,"_src"指向真是的图片地址:      2.   获取浏览器滚动事件:      3.   计算当前浏览器下拉的位置,通过高度判断是否需要加载图片:      4.

mfc-MFC动态加载图片失败,HBITMAP创建不正确

问题描述 MFC动态加载图片失败,HBITMAP创建不正确 在下图所示的PictureControl中动态加入位图,位图文件位置保存在szBMP0(CString)中,Picture控件中创建m_PIC_BMP0变量,但是图片无法加载,加载图片的句柄显示CXX0030无法计算的表达式,加载图片失败,请大神解答~谢谢!__窗口图片说明! 解决方案 CBitmap bmp; bmp.LoadBitmap(IDB_PAGE2); GetDlgItem(IDC_PIC)->SetBitmap((HBIT

使用高斯模糊的效果逐步加载图片(仿 Medium)

用过 Medium 的用户不会不记得它的图片加载方式--纯色-高斯模糊-加载完成并显示. 这是一种很优雅的图片预加载的方式(因为 Medium 的图片质量都很高,如果全部一下加载的话,需要的时间难以想象,所以,这是一种很棒的做法).从第一次打开 Medium 这个网站开始,我就被这种技术给吸引住了--好吧,直到今天才去研究它. 在 Medium 网站,打开任何一篇文章,然后,我们来 inspect 一下: <figure name="512a"           id=&quo

Android App中使用Glide加载图片的教程_Android

与其他图片加载库相同,Glide除了可以加载网络图片之外,也可以加载本地图片.甚至还可以从各种各样奇葩的数据源中加载图片. 加载网络图片很多情况下,我们使用图片加载库就是为了加载网络图片.网络操作是一个很复杂的东西.试想一下,如果没有图片加载库,我们就要手动去下载图片,缓存图片,最后再从文件里面读取bitmap并设置到Imageview里面.这还算好的,要是在Listview里面你会更头疼的.原因我就不说了,你懂的~~再加上各种各样的Bitmap操作,保准你再也不想撸代码了.而且Bitmap这东

Android App中使用Glide加载图片的教程

与其他图片加载库相同,Glide除了可以加载网络图片之外,也可以加载本地图片.甚至还可以从各种各样奇葩的数据源中加载图片. 加载网络图片 很多情况下,我们使用图片加载库就是为了加载网络图片.网络操作是一个很复杂的东西.试想一下,如果没有图片加载库,我们就要手动去下载图片,缓存图片,最后再从文件里面读取bitmap并设置到Imageview里面.这还算好的,要是在Listview里面你会更头疼的.原因我就不说了,你懂的~~再加上各种各样的Bitmap操作,保准你再也不想撸代码了.而且Bitmap这

c++-MFC单文档 CTreeView 树结点前加小图标的方法

问题描述 MFC单文档 CTreeView 树结点前加小图标的方法 RT.是在视图分割了以后要用到的. 要在每个根项前加一个图标1,同时在根项的子项前加图标2 不太了解这块..麻烦讲详细点,万分感谢! 解决方案 参考:http://blog.csdn.net/lifu119/article/details/7024268 关键点: himl=ImageList_Create(16,16,ILC_COLOR32,1,12); ImageList_Add(himl,LoadBitmap(hInstX

MFC 列表控件CListCtrl加载类似QQ界面的头像与文字

本文主要讲述使用VS2012 MFC的CListCtrl(列表)控件加载类似于QQ界面的图片与文字数据.主要通过CListCtrl::InsertColumn.InsertItem.SetItemText向列表插入数据,CImageList插入BMP图片或ICON图标. 一.创建项目及界面 1.创建项目     创建项目名为"QQList"的基于MFC对话框的应用程序.资源视图中对话框IDD_QQLIST_DIALOG删除"TODE"和按钮,并添加List Cont

mfc-求大神解答,在MFC中如何通过代码将本地的图片加载到资源中并分配ID?

问题描述 求大神解答,在MFC中如何通过代码将本地的图片加载到资源中并分配ID? 求大神解答,在MFC中如何通过代码将本地的图片加载到资源中并分配ID? 解决方案 资源是编译时候的概念,加载是运行时候的概念. 资源被资源编译器编译,再通过链接器附加到可执行文件上.程序运行的时候它是只读的. 解决方案二: 不知道你为什么要怎么做,不可以直接在程序中调用资源吗 解决方案三: 用CXImage等类库可以加载文件 解决方案四: 用CImage加载本地图片就不要放到资源视图中了,也就没有资源ID的概念了.