所有者绘制是否仅适用于 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 ] 处理程序,并用它做任何你想做的事。
当 ListView 处于图标模式时,我想在 ListView 项目周围绘制一个矩形,所以我开始阅读有关 owner draw 的内容,我认为它可以解决我的问题。
不过,我也看到了owner draw只能在Report模式下使用!在 Windows 的较新版本(Windows XP 及更高版本)下是否仍然如此?
如果情况仍然如此,那么是否有另一种方法可以在 ListView 项目周围绘制一个矩形?
是的,LVS_OWNERDRAWFIXED
样式仅对 LVS_REPORT
情况有意义。但还有另一种方法 - 您可以处理列表视图发送给您的 NM_CUSTOMDRAW
通知。这些是为所有控制模式发送的,根据你想做什么,你可以处理 CDDS_ITEMPOSTPAINT
通知,使用 dwItemSpec
字段作为项目索引,从你的 WM_NOTIFY 中发送 LVM_GETITEMRECT ] 处理程序,并用它做任何你想做的事。