Delphi 调整TListView列大小后的事件

Delphi 调整TListView列大小后的事件,delphi,delphi-2010,tlistview,Delphi,Delphi 2010,Tlistview,我试图在将TListView中的列调整为ViewStyle=vsReport后触发事件 具体来说,我有两个ListView,我希望保持列的宽度相同。只有一个listView具有列标题,因此事件需要链接到这些列标题 随便看看TlistView的可用程序,似乎没有相关的选项 有什么帮助吗?对ListView进行子分类,截取从ListView的头控件发送到ListView的WM\u NOTIFY消息,查找HDN\u ENDTRACK和HDN\u ITEMCHANGED通知 不要与CN\u NOTIFY

我试图在将TListView中的列调整为ViewStyle=vsReport后触发事件

具体来说,我有两个ListView,我希望保持列的宽度相同。只有一个listView具有列标题,因此事件需要链接到这些列标题

随便看看TlistView的可用程序,似乎没有相关的选项


有什么帮助吗?

对ListView进行子分类,截取从ListView的头控件发送到ListView的
WM\u NOTIFY
消息,查找
HDN\u ENDTRACK
HDN\u ITEMCHANGED
通知


不要与
CN\u NOTIFY
消息混淆,它们是ListView发送给自身的
WM\u NOTIFY
消息。

干杯-没想到OnCustomDraw会这样做。放下这个作为答案,我会接受不不,用上面贴的东西。你应该跟踪通知。我在想雷米的解决方案。如果Remy愿意的话,他应该发布答案。这需要很多代码来实现组件应该附带的东西……VCL并没有封装API提供的所有内容,也从来没有封装过。它包装了最常见的功能,但在需要更高级的东西时公开了API访问。大多数用户不需要事件来跟踪列的大小调整,但有一种方法可以在实际需要时获取该信息。而且它也不是一个需要完成的“大量代码”。这最多可以用十几行代码来完成。我想我的意思是,为什么在这个组件的设计阶段没有预料到列大小调整问题。API是否使列在默认情况下可调整大小?为什么他们会决定将其作为默认行为?这似乎是一个有争议的决定——增加了它应该作为可选行为实施的论点的力度。表格(或网格)是向用户显示和/或从用户获取数据的最常见方式之一,令人费解的是,为什么在编写SPECs时,可调整大小的列会被视为“强制性行为”。是的,ListView列在Win32 API层默认情况下是可调整大小的
TListView
不控制该行为,也不捕获Win32 API提供的调整大小事件(但捕获与正在拖动和重新排序的列相关的Win32 API事件)。