我使用VS2015来开发并需要将项插入到CListCtrl对象中。我使用InsertItem()在列表末尾添加新项。下面是我的代码
int nIdx = m_SessionTimesListCtrl.InsertItem(
m_SessionTimesListCtrl.GetItemCount(), IFMT("%s/%s/%s", getTime(), getWeekDay(), getTimeZone()));我的意图是得到下面的列表
03:00/星期一/美国
17:00/TUS/US
17:00/WED/US
17:00/清华/美国
但是,我拿到了这份名单
03:00/星期一/美国
17:00/清华/美国
17:00/TUS/US
17:00/WED/US
唯一的解释是CListCtrl对输入进行排序,我给它要插入的索引。
我检查了我的资源文件,没有使用排序属性。
CONTROL "",IDC_LIST_SESSION_TIMES,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,152,58那么,我的问题是如何禁用CListCtrl的自动排序?
发布于 2017-03-28 03:51:20
当需要以可排序的方式显示项目时,通常使用LVS_REPORT样式。使用这种样式可能会导致列表控件具有一个CHeaderCtrl,可以单击该控件对列表项进行排序。
如果不需要排序,并且不需要显示列标题,则可能不使用LVS_REPORT样式。选择类似于LVS_LIST风格的东西。
如果需要列标题,但不需要排序,则可能希望通过执行以下操作来禁用控件的排序属性:
m_SessionTimesListCtrl.ModifyStyle(LVS_SORTASCENDING|LVS_SORTDESCENDING, 0);https://stackoverflow.com/questions/43059944
复制相似问题