CListCtrl的奇怪问题?

readnothing 2003-06-06 09:29:41
我想在一个有两列的ListCtrl中添加纪录,其中第一列是文本,第二列是icon,可以我下面的代码运行之后,icon总是加在第一列上,为什么?请大虾指点,谢谢

LV_COLUMN lvcol;
lvcol.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH;
lvcol.fmt=LVCFMT_CENTER;
lvcol.pszText="文本";
lvcol.iSubItem=0;
lvcol.cx=50;
m_ListInfo.InsertColumn(0,&lvcol);

lvcol.pszText = "图片";
lvcol.iSubItem = 1;
lvcol.cx = 50;
m_ListInfo.InsertColumn(1,&lvcol);

cli.Create(16,16,TRUE,1,1);
cli.Add(AfxGetApp()->LoadIcon(IDI_ICONCHECK));

m_ListInfo.SetImageList(&cli,LVSIL_SMALL);
cli.Detach();


LV_ITEM lvitem;int pos;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = 0;
lvitem.iSubItem = 0;
lvitem.pszText = "测试文本";
pos = m_ListInfo.InsertItem(&lvitem);
lvitem.mask = LVIF_IMAGE;
lvitem.iItem = pos;
lvitem.iSubItem = 1;
lvitem.iImage = 0;
m_ListInfo.SetItem(&lvitem);
...全文
22 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
readnothing 2003-06-07
  • 打赏
  • 举报
回复
thx
ukyoking 2003-06-07
  • 打赏
  • 举报
回复
摘自msdn

Specified by the LVS_REPORT window style. Each item appears on its own line with information arranged in columns. The leftmost column contains the small icon and label, and subsequent columns contain subitems as specified by the application.

默认的listctrl图标只能在最左边一列显示,如果你需要特殊的,可以自己派生子类解决,或者你想偷懒的话,可以去www.vckbase.com下载现成的类来使用
readnothing 2003-06-06
  • 打赏
  • 举报
回复
我是加在InsertItem之前的,但还是不行,faint
Earthdog 2003-06-06
  • 打赏
  • 举报
回复
那句话一定要加到你的InsertItem调用之前
readnothing 2003-06-06
  • 打赏
  • 举报
回复
可还是不行啊?我觉得太奇怪了,以前用的时候没有碰到这种问题啊?
我就算把m_ListInfo.InsertItem(&lvitem)后面的代码去掉,都还有icon在第一列出现,为什么呢?
Earthdog 2003-06-06
  • 打赏
  • 举报
回复
你必须要加上这样一句话才行
m_listCtrl.SetExtendedStyle(m_listCtrl.GetExtendedStyle() | LVS_EX_SUBITEMIMAGES);

15,979

社区成员

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

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