代码之家  ›  专栏  ›  技术社区  ›  StackedCrooked

自定义绘制的列表视图有问题

  •  0
  • StackedCrooked  · 技术社区  · 14 年前

    我创建了一个列表视图类,它使用自定义绘图进行渲染。除了不渲染任何东西外,它都能很好地工作。我将它的父窗口子类化以捕获 NM_CUSTOMDRAW 通知作为 WM_NOTIFY 消息。然而,似乎 WMY通知 只在创建控件期间触发几次,此后再也不会触发。所以 NMU定制 从不执行代码。

    我用WinSpectorSpy检查了一下,看看父窗口中的控件是否布局正确,这似乎没问题。

    有人知道我做错了什么吗?

    代码可以在线找到:

    3 回复  |  直到 14 年前
        1
  •  2
  •   Anders    14 年前

    你为什么要在CDDS的“项目延迟”中绘制文本?您可能应该在cdds_itemppaint中绘制文本并返回cdrf_skipdefault。此外,不应在nmcustomdraw中使用rect,请调用listview_getitemrect以获取真正需要的rect(lvir_label for text等)

        2
  •  0
  •   Ben Voigt    14 年前

    看起来不像你在用 LVS_OWNERDRAWFIXED 样式,这可以解释为什么您没有收到所有者绘制消息。

        3
  •  0
  •   StackedCrooked    14 年前

    我需要打电话 ShowWindow(mHandle, SW_SHOW); 创建列表视图后。

    呸!