【问题标题】:How to add items to an MFC CListCtrl object so their icons appear in top-to-bottom sequence?如何将项目添加到 MFC CListCtrl 对象,以便它们的图标以从上到下的顺序显示?
【发布时间】:2012-05-30 08:55:09
【问题描述】:

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

通过InsertItem() 将项目添加到MFC CListCtrl 对象后,在大多数视图模式中,它们的图标以相反的行顺序显示,但正确的列顺序。 我没有使用“报告”(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_ICONLV_VIEW_SMALLICONLV_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

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

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

【问题讨论】:

  • @Jonathan、Bart 或任何人:为什么将我的大量散文重新格式化为代码?我可以看到这样做的意义在于使用可以/确实出现在代码中的名称/类型,但是诸如“相对大小/维度”或“属性”之类的词......?
  • 抱歉 - 我改进了 Joy 所做的一些更改,但我专注于省略的 'i' 到 'I' 映射,并指出作为代码更改的代码是一种改进。我同意运行文本中的“相对大小/尺寸”等最好保留为纯文本;我应该解开那些,我很抱歉在重新编辑时不够无情。您可以对其进行编辑以适合自己,但请记住,如果您一开始就使演示文稿“更好”,则根本不需要编辑。您可以随时编辑您的问题。
  • 我看到 Bart 删除了一个笑脸和一些省略号;乔伊再次强调。他的改变得到了“人民”的认可。在这个问题的情况下,我认为我将 Joy 的更改标记为有帮助。我可能会留下“答案”:我需要将OwnerDrawFixed 属性更改回False,它不强调属性。而且我可能会在以下内容中添加“它”:现在它可以按预期工作了。 但总的来说,笑脸在 SO 上的使用并不多,总的来说这是一件好事。 (如果您希望我为您清理,请再次发表评论;我会的,因为我造成了混乱。)
  • @Jonathan 等人。感谢您的改进(以及良好风格的解释)。我并不是要挑剔,但你提到了乔伊的编辑,但我没有看到对乔伊的正式提及。另外,我不确定您所说的“被'人们'批准”是什么意思。 “人”是另一个用户,一般用户,......?
  • 转到修订版 (stackoverflow.com/posts/10726216/revisions),然后查看修订版 2。您也可以通过单击“1 小时前编辑”(当我键入时)部分的时间来做到这一点问题的底部,在您的“询问”信息旁边。 “由人们批准”意味着编辑是由没有允许他们编辑任何内容的声誉的人提出的。这样的编辑由那些可以进行编辑的人仔细检查,并且(通常)两个人在接受之前批准编辑。所以,乔伊的改动得到了两个人的认可。

标签: mfc sequences clistctrl


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多