在Windows主题更改后,TListView的列内容变得不正确。我把它缩小到CM_RECREATE消息,这是当VCL重新创建TListView的窗口句柄以响应系统主题更改时。下面是一些说明问题的截图。
原始列表视图状态
最后一列被移动到第一个位置。一切都很好。
Windows主题更改后,列位置会被保留,但内容不再正确。
目前,我通过在自定义CM_RECREATEWND处理程序中手动重新创建列来克服此问题。这是一个错误吗?它是重新创建列的好方法,还是有更好的方法?
我正在使用Delphi10,但在之前的版本中也观察到了相同的行为。
答案 0 :(得分:2)
如果有人需要快速修复此错误,我会发布我的解决方法。只需将此单元作为表单使用列表中的最后一个使用单元包含在内。
{{1}}