所有者绘制是否仅适用于 ListView 的报告模式?

Does owner draw only work in report mode for ListView?

当 ListView 处于图标模式时,我想在 ListView 项目周围绘制一个矩形,所以我开始阅读有关 owner draw 的内容,我认为它可以解决我的问题。

不过,我也看到了owner draw只能在Report模式下使用!在 Windows 的较新版本(Windows XP 及更高版本)下是否仍然如此?

如果情况仍然如此,那么是否有另一种方法可以在 ListView 项目周围绘制一个矩形?

是的,LVS_OWNERDRAWFIXED 样式仅对 LVS_REPORT 情况有意义。但还有另一种方法 - 您可以处理列表视图发送给您的 NM_CUSTOMDRAW 通知。这些是为所有控制模式发送的,根据你想做什么,你可以处理 CDDS_ITEMPOSTPAINT 通知,使用 dwItemSpec 字段作为项目索引,从你的 WM_NOTIFY 中发送 LVM_GETITEMRECT ] 处理程序,并用它做任何你想做的事。