【问题标题】:How to provide a custom column width calculation for CListCtrl?如何为 CListCtrl 提供自定义列宽计算?
【发布时间】:2013-10-18 13:25:59
【问题描述】:

我正在使用带有我自己的“DrawItem”的 CListCtrl 将一些自定义图形绘制到第一列的文本前面。为此,文本向右移动了约 20 像素。这部分有效。

如果用户双击标题中的列分隔符,Windows 会计算最佳列宽。但当然 Windows 不知道我的自定义绘图。所以结果对于第一列来说太小了约 20 个像素。

我该如何纠正?

【问题讨论】:

  • 您是否尝试过捕获 dbl 单击列标题的消息?您应该能够将列的大小限制为您需要的大小。
  • 还没有。我希望像“覆盖 OnCalculateColumnWidth 并加上 20”这样的东西,而不是自己做这一切。但到目前为止我还没有找到这样一个可覆盖的。

标签: mfc clistctrl


【解决方案1】:

找到解决方法:

我可以欺骗 MFC 认为列表控件使用复选框:

pMyList->SetExtendedStyle(pMyList->GetExtendedStyle() | LVS_EX_CHECKBOXES);

用户永远不会看到系统的复选框(因为我的自定义绘图),但这给了我所需的空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-06
    • 2010-12-06
    • 2012-01-16
    • 2016-05-12
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多