Winapi 如何在ListView控件中隐藏/显示列?

Winapi 如何在ListView控件中隐藏/显示列?,winapi,Winapi,在Windows资源管理器中,可以隐藏/显示列。WindowsListView控件是否也支持此功能?(我假设Windows资源管理器使用另一个我们无权访问的控件)。您可以根据需要使用和获取/设置列的属性。要隐藏列,请获取其当前宽度,然后将其宽度设置为0。要显示列,请恢复其以前的宽度 但是,当一列被“隐藏”时,用户仍然可以抓住列边缘的分隔符并手动调整列的大小。要避免这种情况,您可以: 使用完全删除列,然后在需要重新显示时使用 子类化ListView以拦截来自ListView头控件的通知,为“隐藏”

在Windows资源管理器中,可以隐藏/显示列。Windows
ListView
控件是否也支持此功能?(我假设Windows资源管理器使用另一个我们无权访问的控件)。

您可以根据需要使用和获取/设置列的属性。要隐藏列,请获取其当前宽度,然后将其宽度设置为0。要显示列,请恢复其以前的宽度

但是,当一列被“隐藏”时,用户仍然可以抓住列边缘的分隔符并手动调整列的大小。要避免这种情况,您可以:

  • 使用完全删除列,然后在需要重新显示时使用

  • 子类化ListView以拦截来自ListView头控件的通知,为“隐藏”列返回
    TRUE
    ,以防止它们调整大小


  • :“列表视图控件已经有标题控件。您可以使用或检索现有控件,而不是为列表视图控件创建标题控件。”您不需要走那么远。ListView基于自己的消息来操作列<代码>LVM_删除列,
    LVM_插入列
    ,以及
    LVM_设置列