我现通过CImageList可以设置列表的每行的第一列显示图标。 m_listServer.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_FLATSB);
m_listServer.SetImageList(&m_wndImageList2, LVSIL_SMALL);现在的问题是:通过SetImageList设置的每一行的图标都一样。我应该如何去修改指定行的图标呢?即我右击某行,即可以让这行显示不同的图标?
m_listServer.SetImageList(&m_wndImageList2, LVSIL_SMALL);现在的问题是:通过SetImageList设置的每一行的图标都一样。我应该如何去修改指定行的图标呢?即我右击某行,即可以让这行显示不同的图标?
解决方案 »
- 关于CreateFile中FILE_SHARE_WRITE的问题
- VC进阶者群招贤纳士
- 求<<Debugging Applications>>源码?很需要,在网上实在找不到!
- ActiveX的事件参数可以为数组吗?
- 求vc 1.52 下载地址
- 如何将DWORD类型转换成CString啊,急死了!
- 使用DAO创建数据库
- 请问在场各位?都学VC++多久了,最初学她的目的是什么????
- 有无好方法判断一个byte是中文的第一个byte还是第二个byte?
- 想获取本机ip地址,使用getaddrinfo函数时出现问题,请大神帮忙!
- 关于tab,位图本该贴在一个标签下,却每个都贴了一次,成了透明
- MDI程序中GetActiveView()出错?求用法
CListCtrl没有封装单独设置Item条目的函数,所以如果你想在Item插入后再修改,就只能先GetItem出来,改了再SetItem回去。
BOOL SetItem(
const LVITEM* pItem
);
BOOL SetItem(
int nItem,
int nSubItem,
UINT nMask,
LPCTSTR lpszItem,
int nImage,
UINT nState,
UINT nStateMask,
LPARAM lParam
);
BOOL SetItem(
int nItem,
int nSubItem,
UINT nMask,
LPCTSTR lpszItem,
int nImage,
UINT nState,
UINT nStateMask,
LPARAM lParam,
int nIndent
);
int nItem,
LPCTSTR lpszItem,
int nImage
);
插入时就可以指定了.
m_listServer.SetImageList(&m_wndImageList2, LVSIL_SMALL);这样设置。让列表中所有的服务器信息都显示一个正确的图标。当程序在运行的过程中,可能会发现某条记录有问题,右击-->屏蔽服务器 这样就把这个服务器给屏蔽了,于是,我要把这个被屏蔽的服务器的图标改成一个错误的图标信息。
item.iImage = 2;
item.iItem = m_nItem; //m_nItem为右击时得到的行数
item.iSubItem = 0;
m_listServer.SetItem(&item);
通过这种方法来设置指定行为错误的图标,结果却是整个list都变成了相同的错误图标。
http://hi.baidu.com/zhutas/blog/item/0b707b2fcebb60361f3089b6.html结贴,散分