在 vc++ 中重新调整任何 clistctrl 列的大小时避免使用补丁
Posted
技术标签:
【中文标题】在 vc++ 中重新调整任何 clistctrl 列的大小时避免使用补丁【英文标题】:Avoid patches while re-sizing any column of clistctrl in vc++ 【发布时间】:2014-04-30 11:57:41 【问题描述】:当我重新调整加载有UxTheme.dll
的clistctrl
(带有报告视图)的任何列的大小时,它会在所有项目的末尾创建补丁(如下图“项目 4”所示)。
为什么会出现这些补丁以及如何避免这些补丁?
【问题讨论】:
如果您显示一些提供问题上下文的代码会很有帮助。 @rrirower 我创建了加载库“UxTheme.dll”的 CListCtrl,出现此补丁,否则不会出现。 【参考方案1】:这是一个绘画问题。您所说的“补丁”是从被移动的列分隔线保留在屏幕上的伪影。
你说问题与库UxTheme.dll的加载有关。这意味着您正在为 ListView 控件设置 Explorer 主题。该主题旨在与双缓冲一起使用。为此,您需要为控件设置LVS_EX_DOUBLEBUFFER
扩展样式标志。
myListCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_DOUBLEBUFFER, LVS_EX_DOUBLEBUFFER);
【讨论】:
以上是关于在 vc++ 中重新调整任何 clistctrl 列的大小时避免使用补丁的主要内容,如果未能解决你的问题,请参考以下文章