0
我正在使用Windows列表视图控件,并且有点被LVCOLUMN和HDITEM混淆,前者用于定义列属性,后者用于定义列的实际标题对象,我理解正确吗?Windows GUI控件:LVCOLUMN和HDITEM之间的区别?
如果是这样,我是否需要创建/定义两者?
我正在使用Windows列表视图控件,并且有点被LVCOLUMN和HDITEM混淆,前者用于定义列属性,后者用于定义列的实际标题对象,我理解正确吗?Windows GUI控件:LVCOLUMN和HDITEM之间的区别?
如果是这样,我是否需要创建/定义两者?
你通常只是处理LVCOLUMN并让列表视图本身为你更新标题控件。
当您直接访问标题时,您通常只需要使用HDITEM(或者与标题控件交谈),这很少见(但在某些情况下会发生)。
当我尝试在报告模式下使用List-View控件的过滤功能时,我遇到了这个问题。 LVCOLUMN和HDITEM具有一些相同的属性,如文本,宽度和顺序。如果我已经InsertColumn(),我需要为插页的InsertItem,或只是SetItem的标题来改变它? – Sheen 2011-01-05 10:18:23
@Sheen,ListView上的InsertItem应该自动更新标题。将标题看作是列表视图的内部子项/组件。通常,只需要直接访问头文件就是如果你想做一些listview本身没有提供的方法。如果listview有一个方法,那么它通常会更新头本身;你通常不需要让这两件事情保持同步。 – 2011-01-05 10:42:53
谢谢。所以我明白如果我调用InsertColumn(),标题项会自动创建。如果我想启用过滤器和LPARAM功能,我必须调用GetHeaderCtrl()。SetItem()来指定HDI_FILTER和HDI_LPARAM。 – Sheen 2011-01-05 10:48:07