2

我正在使用 Visual Studio C++ 2008 v 3.5 SP1(带有功能包)。

通过 将项目添加到 MFCCListCtrl对象后InsertItem(),在大多数视图模式中,它们的图标以相反的行顺序显示,但正确的列顺序。我没有使用“报告”( LV_VIEW_DETAILS) 模式,所以我提到的行和列是指图标在网格或布局中的排序方式。

我这样添加它们:

for (int i = 0; i < item_count; ++i)
    list_ctrl.InsertItem (i, item_arr[i].text, i); 

并希望它们看起来像这样:

icon 0
icon 1
icon 2
:
icon N-2
icon N-1

(其中图标 # 匹配其项目 # 并且 N 是item_count)。

但是,在“大图标”、“小图标”和“平铺”( LV_VIEW_ICON, LV_VIEW_SMALLICON, LV_VIEW_TILE) 模式下,它们看起来像这样:

icon N-1
icon N-2
:
icon 2
icon 1
icon 0

它们仅在“列表”( LV_VIEW_LIST) 模式下以正确的顺序出现,但随后它们水平排列和滚动:

icon 0  icon 1  icon 2  ..  icon N-2  icon N-1

(它们是否全部出现在单行/列中仅仅是图标和控件的相对大小/尺寸的函数。)似乎我可以有垂直方向但相反的顺序,或者正确的顺序但错误的方向!

我如何以我想要的方式得到东西?我在文档或论坛中没有看到任何关于此的内容 - 仅关于按文本排序项目(我不想要)或在详细信息/报告模式下排序列的顺序(我不想要)。

4

1 回答 1

0

在花了太多时间之后,我们终于想通了:我需要将OwnerDrawFixed属性(返回)更改为False! 现在它按预期工作。

于 2012-05-24T15:59:43.207 回答