【发布时间】:2016-08-01 01:54:30
【问题描述】:
CListCtrl 的默认行为是否仅显示当前填充有下方灰色空白区域的行数?
在我的列表中,我在固定显示区域中有可变数量的条目。当条目多于显示区域可以容纳时,垂直滑块会出现并且所有内容都正确显示。当我删除条目时,现在没有足够的空间来填充显示区域,底部的空白区域变为灰色,没有单元格网格。
我想将显示区域设置为完整的单元格网格。如果必须,我可以计算并用空行填充该区域,但我没想到这是默认行为。我本来希望 CListCtrl 的整个客户端区域永久显示为一个空单元格网格,并在顶部显示正确数量的条目。
我是否必须手动处理这个问题,或者我没有设置 CListCtrl 的某些属性?
【问题讨论】:
-
不确定我是否理解所有内容,你能发一些图片吗?
-
您要求的默认行为非常尴尬。如果客户区不是单元格高度的倍数,默认行为应该是什么?在这种情况下,剩余的空间是否应该变灰?控件是否应该显示部分行,而不显示随附的垂直滚动条?它应该显示带有垂直滚动条的部分行吗?在这种情况下滚动条应该如何表现?这些都不是很直观,实现的默认行为确实是最不意外的路线。
-
我想你误解了我的意思。我不是在谈论可能留在底部的部分行,我是在谈论当前未填充数据的所有空间。如果我有一个显示 40 行的 CListCtrl,并且只有前 10 行有数据,那么它们下面的 30 行只是一个与对话框背景相同的灰色块。我不确定这个网站如何处理图片,但我在 Dropbox 上托管了一个屏幕截图来说明我的意思:link
-
我已经完成了这项工作,但使用 clutz 代码添加空行“”,如果行为应该已经是这样就不好了,你必须处理选择!您实际上可以在显示之外添加行,只要下部单元格中没有数据,VScrollbar 就不会出现。所以滚动条似乎基于数据而不是显示,并照顾你的观点。让我质疑的是,当列表首次显示时,在输入任何数据之前,它会完全按照我的意愿显示一个空网格。当我填充数据时,灰色区域会出现并持续存在,并根据数据进行调整。