CListCtr和CImageList绑定,怎么样把位图放到第二列上?

ryueiketu 2011-03-11 09:29:38
如题,我现在只会把它放到第一列上,我知道CListCtr中插入新行是有个LVITEM。iSubItem和iImage,但是不论怎么设定图片都是在第一列上,咋办?莫非有的重写?谁有重写的例子,大概能实现我这样功能的。。奉献个?谢谢。。
...全文
149 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryueiketu 2011-03-14
  • 打赏
  • 举报
回复
LVS_EX_SUBITEMIMAGES + GetOrderArray + SetOrderArray 问题解决。谢谢各位!
Ulfsaar 2011-03-11
  • 打赏
  • 举报
回复
网上下个Xlistctrl,可以直接设
ndscer 2011-03-11
  • 打赏
  • 举报
回复
我印象中,第二列也可以直接加的,有个属性。类似于LVS_SUBITEMIMAGE这样的字符串
Eleven 2011-03-11
  • 打赏
  • 举报
回复
LVS_EX_SUBITEMIMAGES
Version 4.70. Allows images to be displayed for subitems. This style is available only in conjunction with the LVS_REPORT style.
向立天 2011-03-11
  • 打赏
  • 举报
回复
就是要重写
默认只有第一列有图标
fishion 2011-03-11
  • 打赏
  • 举报
回复
http://www.codeproject.com/KB/list/ReportControl.aspx
参考
zzz_zou 2011-03-11
  • 打赏
  • 举报
回复
不用重写,我是直接自己绘制进去的,GetSubItemRect 得到你想要的位置的大小,然后直接在DC上绘制 处理好,onpaint之类的消息就好
ji1bing 2011-03-11
  • 打赏
  • 举报
回复
自绘一下 很简单实现的

有的功能clistctrl都不支持,都要重写的
ryueiketu 2011-03-11
  • 打赏
  • 举报
回复
地震了。下班了。呵呵。下周再试吧。。
Eleven 2011-03-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ryueiketu 的回复:]
引用 4 楼 visualeleven 的回复:

LVS_EX_SUBITEMIMAGES
Version 4.70. Allows images to be displayed for subitems. This style is available only in conjunction with the LVS_REPORT style.

加了这个属性,第一列以后的能加上了。……
[/Quote]
http://hi.baidu.com/new_217/blog/item/0df6a8f48c136e62dcc474a5.html
ryueiketu 2011-03-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zzz_zou 的回复:]

不用重写,我是直接自己绘制进去的,GetSubItemRect 得到你想要的位置的大小,然后直接在DC上绘制 处理好,onpaint之类的消息就好
[/Quote]
看了几个例子,这个方法我倒是回了,不过我想既然MS出了CimageList能和ClistCtr配合使用,就应该能解决这个问题,MS不会这么弱智吧。。呵呵。我再研究下。谢谢指点。。
ryueiketu 2011-03-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 visualeleven 的回复:]

LVS_EX_SUBITEMIMAGES
Version 4.70. Allows images to be displayed for subitems. This style is available only in conjunction with the LVS_REPORT style.
[/Quote]
加了这个属性,第一列以后的能加上了。可是第一列咋去掉呀,它默认就给第一列加,我想应该还有什么掩码的,应该可以处理,不过我没找到,再指点一下。。呵呵。谢谢。。
无水先生 2011-03-11
  • 打赏
  • 举报
回复
我给你点例子,自己看吧!

int CMnuView::Init_List(void)
{
plist = &GetListCtrl();
m_ImageList.Create(32, 32, ILC_COLOR16|ILC_MASK,8, 0);

HICON hIcon;
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON2));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON3));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON4));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON5));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON6));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON7));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON8));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON9));
m_ImageList.Add(hIcon);
hIcon = ::LoadIcon (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON10));
m_ImageList.Add(hIcon);

CRect rc;
plist->GetClientRect(rc);
int cy;
cy = rc.Height()/13;
plist->SetIconSpacing(rc.Width(),60); //设置新的图标的位置

plist->SetTextColor(RGB(0,85,229));
plist->SetTextBkColor(RGB(223,223,223));
plist->SetBkColor(RGB(223,223,223));

plist->InsertColumn(0, _T("Choices"),LVCFMT_LEFT,30,-1); //插入卷标

plist->InsertItem(0, _T("项1"), 0);
plist->InsertItem(1, _T("项2"), 1);
plist->InsertItem(2, _T("项3"), 2);
plist->InsertItem(3, _T("项4"), 3);
plist->InsertItem(4, _T("项"), 4);
plist->InsertItem(5, _T("项"), 5);
plist->InsertItem(6, _T("项"), 6);
plist->InsertItem(7, _T("项"), 7);
plist->InsertItem(8, _T("项"), 8);
plist->InsertItem(9, _T("退出"), 9);

plist->SetImageList(&m_ImageList, LVSIL_NORMAL);
return 0;
}

15,979

社区成员

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

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