NM_CUSTOMDRAW (列表视图) 通知代码

由列表视图控件发送,以通知其父窗口有关绘图操作的信息。 此通知代码以 WM_NOTIFY 消息的形式发送。

NM_CUSTOMDRAW

    lpNMCustomDraw = (LPNMLVCUSTOMDRAW) lParam;

参数

lParam

指向包含绘图操作相关信息的 NMLVCUSTOMDRAW 结构的指针。 此结构的第一个成员 nmcd 是指向 NMCUSTOMDRAW 结构的指针。 nmcd 指向的结构的 dwItemSpec 成员包含要绘制的项的标识符,lItemlParam 成员包含其应用程序定义的数据。

返回值

应用程序可以返回的值取决于当前绘图阶段。 关联的 NMCUSTOMDRAW 结构的 dwDrawStage 成员包含一个指定绘图阶段的值。 必须返回以下值之一。

返回代码 说明
CDRF_DODEFAULT
控件将绘制自身。 它不会为此绘制周期发送任何其他 NM_CUSTOMDRAW 通知代码。 当 dwDrawStage 等于 CDDS_PREPAINT 时,将发生这种情况。
CDRF_DOERASE
Windows Vista。 控件将仅绘制背景。
CDRF_NOTIFYITEMDRAW
控件将通知父级任何与项相关的绘图操作。 它将在绘制项之前和之后发送 NM_CUSTOMDRAW 通知代码。 当 dwDrawStage 等于 CDDS_PREPAINT 时,将发生这种情况。
CDRF_NOTIFYPOSTERASE
控件将在擦除项后通知父级。 当 dwDrawStage 等于 CDDS_PREPAINT 时,将发生这种情况。
CDRF_NOTIFYPOSTPAINT
控件将在绘制项后通知父级。 当 dwDrawStage 等于 CDDS_PREPAINT 时,将发生这种情况。
CDRF_NEWFONT
应用程序为项目指定了新字体;控件将使用新字体。 有关更改字体的详细信息,请参阅 更改字体和颜色。 当 dwDrawStage 等于 CDDS_ITEMPREPAINT 时,将发生这种情况。
CDRF_NOTIFYSUBITEMDRAW
版本 4.71。 应用程序将收到 一个NM_CUSTOMDRAW 控制代码,其中 dwDrawStage 设置为 CDDS_ITEMPREPAINT |在绘制每个列表视图子项之前CDDS_SUBITEM。 然后,可以单独指定每个子项的字体和颜色,或返回 CDRF_DODEFAULT 进行默认处理。 当 dwDrawStage 等于 CDDS_ITEMPREPAINT 时,将发生这种情况。
CDRF_SKIPDEFAULT
应用程序手动绘制项。 控件不会绘制项。 当 dwDrawStage 等于 CDDS_ITEMPREPAINT 时,将发生这种情况。
CDRF_SKIPPOSTPAINT
Windows Vista。 控件不会绘制焦点矩形。

备注

版本 5.80。 如果通过返回 CDRF_NEWFONT来更改字体,列表视图控件可能会显示剪裁的文本。 若要与早期版本的通用控件向后兼容,必须执行此行为。 如果要更改列表视图控件的字体,如果在向控件添加任何项之前发送 wParam 值设置为 5 的CCM_SETVERSION消息,将得到更好的结果。

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Commctrl.h