自定义绘制列表视图出现问题

时间:2010-07-11 01:59:13

标签: c++ winapi

我创建了一个列表视图类,它使用Custom Draw进行渲染。这一切都很好,除了它没有渲染任何东西。我将其父窗口子类化为NM_CUSTOMDRAW消息作为WM_NOTIFY消息。但是,似乎WM_NOTIFY仅在创建控件期间触发了几次,之后再也没有触发过。所以NM_CUSTOMDRAW代码永远不会被执行。

我查看了Winspector Spy,看看控件是否在父窗口中正确布局,看起来没问题。

有没有人知道我可能做错了什么?

可以在网上找到代码:

3 个答案:

答案 0 :(得分:2)

为什么要在CDDS_ITEMPOSTPAINT中绘制文字?您应该在CDDS_ITEMPREPAINT中绘制文本并返回CDRF_SKIPDEFAULT。另外,你不应该在NMCUSTOMDRAW中使用rect,调用ListView_GetItemRect来获取你真正追求的矩形(LVIR_LABEL用于文本等)

答案 1 :(得分:0)

看起来你并没有使用LVS_OWNERDRAWFIXED样式,这可以解释为什么你没有得到所有者绘制的消息。

答案 2 :(得分:0)

我需要在创建列表视图后调用ShowWindow(mHandle, SW_SHOW);

卫生署!