1

CListView通过以下方式创建了一个:

return CListView::Create(lpszClassName,
                         _T("ListView"),
                         dwStyle | LVS_SHOWSELALWAYS | LVS_ALIGNTOP | LVS_ICON | LVS_AUTOARRANGE,
                         rect,
                         pParentWnd,
                         nID,
                         pContext);

它显示附件的图形,CImageList并在其下有一个文本字符串。

在过去,我总是将项目添加到列表视图的末尾,然后它就会显示在那里。今天,我决定将列表视图项插入到第一个位置,但它仍然显示在列表视图的末尾?

我通过以下方式插入项目:

int debug=listctrl.InsertItem(0, mytexstring, imageindex);

是在 the的imageindex末尾,CImageList并且在添加上面的调用之后添加了图像(为什么是 after 而不是 before,不确定,但就是这样)。调试返回 0。

一旦我这样做了,新项目就会显示在列表视图的末尾,当列表有很多项目时,甚至会在那里滚动屏幕。

不应该将列表视图项插入索引 0 使其在开始时显示?

我错过了什么或做错了什么?

蒂亚!!

更新:

如果我这样做:

listctrl.SetView(LV_VIEW_LIST);
listctrl.SetView(LV_VIEW_ICON);

它会起作用,但我认为我不应该这样做吗?

4

1 回答 1

0

您可以尝试添加| LVS_NOSORTHEADER样式以将项目插入正确的位置。我认为这会影响默认的排序行为。

于 2020-12-05T12:12:45.290 回答