请问我对List的表头添加图片为什么会非法操作。

newerz 2001-03-05 05:16:00
请问我对List的表头添加图片为什么会非法操作。程序如下,多谢!
CImageList* m_pHdrImages;
m_pHdrImages->Create(16, 16, TRUE, 2, 2);
m_pHdrImages->Add(pApp->LoadIcon(IDI_ICON1));
m_pHdrImages->Add(pApp->LoadIcon(IDI_ICON1));

HDITEM curItem;

CHeaderCtrl* m_pHdrCtrl = m_list1.GetHeaderCtrl();

m_pHdrCtrl->SetImageList(m_pHdrImages);
m_pHdrCtrl->GetItem(0, &curItem);
curItem.mask= HDI_IMAGE | HDI_FORMAT;
curItem.iImage= 0;
curItem.fmt= HDF_LEFT | HDF_IMAGE | HDF_STRING;
m_pHdrCtrl->SetItem(0, &curItem);
...全文
125 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
happylaodu 2001-03-05
  • 打赏
  • 举报
回复
出现非法操作的原因如上面两位大侠所说,是指针没有意义,这是编程之大忌,以后要小心。

另有一点要说明,ImageList最好是作为List的父窗口类的一个成员,不然会出现看不到图标的情况。比如,如果你的List是在CMyDialog为里面,则为CMyDialog类加一个成员变量:
CImageList m_ImageList; //直接用对象就行了,不要用指针

再一点: CImageList的Create函数调用时,第三个参数最好为ILC_MASK,用过之后你就知道为什么了。
Wingsun 2001-03-05
  • 打赏
  • 举报
回复
m_pHdrImages没有初始化啊,也就是说这一个指针没有指向一个确实的CImageList对象啊。

你应该改为这样的:
CImageList * m_pHdrImages=new CImageList();
In355Hz 2001-03-05
  • 打赏
  • 举报
回复
你没有为m_pHdrImageList分配内存啦:
CImageList* m_pHdrImages = new CImagelist;
...
资源下载链接为: https://pan.quark.cn/s/4b3604240f50 Lua-ADT 的 5.1 和 5.2 分支,用纯 Lua 方法封装了多种数据结构,延续 Lua 简洁风格,未采用面向对象,能在语言层面过滤非法操作,保障使用安全,且所有类型都支持用 #获取长度。 元组(tuple)需通过 table 的动态数组初始化,不支持哈希表,仅开放遍历功能,关闭修改权限。 动态数组(vector)基于 lua table 的数组实现,可避免数组不小心变成不连续的情况,能高效实现遍历和修改,但新增和删除操作并非线性时间复杂度,提供 add(尾添加,高效)、insert(插入,有内存整理)、addRange(尾添加一个表)、removeAt、remove、contains、indexOf、sort、find 等方法。 双向链表(list)可弥补动态数组在增删方面的不足,增删效率较高,但遍历和修改效率较低,方法包括 addFirst(头添加)、addLast(尾添加)、addBefore(node 前添加)、addAfter(node 后添加)、removeNode(删除 node)、remove(根据值移除)、find(查找 node)等。 栈(stack)遵循 FILO(先进后出)原则,关闭修改和遍历功能,仅能通过方法操作数据,有 push(添加)、pop(移除)、peek(返回栈顶数据)、clear(清空)等方法。 队列(queue)采用 FIFO(先进先出)机制,因队首删除操作不适用 table.remove,提供 enqueue(添加)、dequeue(移除)、peek(返回队首数据)、clear(清空)等方法,且 #queue 可获取长度。经测试,1w 条数据时,lua table 直接删除表头耗时 1.037s,而 queue 仅耗时 0.005s,

16,551

社区成员

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

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

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