NMCUSTOMDRAW 结构 (commctrl.h)

包含特定于 NM_CUSTOMDRAW 通知代码的信息。

语法

typedef struct tagNMCUSTOMDRAWINFO {
  NMHDR     hdr;
  DWORD     dwDrawStage;
  HDC       hdc;
  RECT      rc;
  DWORD_PTR dwItemSpec;
  UINT      uItemState;
  LPARAM    lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;

成员

hdr

类型: NMHDR

包含有关此通知代码的信息的 NMHDR 结构。

dwDrawStage

类型: DWORD

当前绘图阶段。 这是以下值之一。

Value 含义
全局值:
CDDS_POSTERASE
擦除周期完成后。
CDDS_POSTPAINT
完成绘制周期后。
CDDS_PREERASE
在擦除周期开始之前。
CDDS_PREPAINT
在绘制周期开始之前。
特定于项的值:
CDDS_ITEM
指示 dwItemSpecuItemStatelItemlParam 成员有效。
CDDS_ITEMPOSTERASE
在项目被擦除之后。
CDDS_ITEMPOSTPAINT
绘制项后。
CDDS_ITEMPREERASE
在擦除项之前。
CDDS_ITEMPREPAINT
在绘制项之前。
CDDS_SUBITEM
如果正在绘制子项,则标记与CDDS_ITEMPREPAINT或CDDS_ITEMPOSTPAINT结合使用。 仅当 从CDDS_PREPAINT返回CDRF_NOTIFYITEMDRAW 时,才会设置此值。

hdc

类型: HDC

控件的设备上下文的句柄。 使用此 HDC 执行任何 GDI 函数。

rc

类型: RECT

描述所绘制区域的边框的 RECT 结构。 此成员仅由CDDS_ITEMPREPAINT通知初始化。 版本 5.80。 此成员也由CDDS_PREPAINT通知初始化。

dwItemSpec

类型: DWORD_PTR

项编号。 此成员中包含的内容将取决于发送通知的控件的类型。 有关特定控件,请参阅 NM_CUSTOMDRAW 通知参考,以确定此成员中包含的内容(如果有)。

uItemState

类型: UINT

当前项状态。 此值是以下标志的组合。

Value 含义
CDIS_CHECKED
已选中该项。
CDIS_DEFAULT
该项处于它的默认状态。
CDIS_DISABLED
该项已禁用。
CDIS_FOCUS
该项处于焦点中。
CDIS_GRAYED
该项变灰。
CDIS_HOT
该项当前位于指针 (“hot”) 下。
CDIS_INDETERMINATE
该项处于不确定的状态。
CDIS_MARKED
该项已被标记。 其含义由实现决定。
CDIS_SELECTED
该项已选定。
注意 此标志不适用于具有 LVS_SHOWSELALWAYS 样式的所有者绘制的列表视图控件。 对于这些控件,可以使用 LVM_GETITEMSTATE ( 还是 ListView_GetItemState) 并检查LVIS_SELECTED标志来确定选择
 
CDIS_SHOWKEYBOARDCUES

版本 6.0。该项显示其键盘提示。

请注意,Comctl32 版本 6 不可再发行。 操作系统。 若要使用 Comctl32.dll 版本 6,请在清单中指定它。 有关清单的详细信息,请参阅 启用视觉样式

CDIS_NEARHOT
项是当前位于鼠标指针 (“hot”) 下的控件的一部分,但该项本身不是“hot”。 其含义由实现决定。
CDIS_OTHERSIDEHOT
该项是当前位于鼠标指针下 (“hot”) 的拆分按钮的一部分,但项目本身不是“hot”。 其含义由实现决定。
CDIS_DROPHILITED
该项当前是拖放操作的放置目标。

lItemlParam

类型: LPARAM

应用程序定义的项数据。

注解

应用程序返回的值取决于当前绘图阶段。 关联的 NMCUSTOMDRAW 结构的 dwDrawStage 成员包含一个指定绘图阶段的值。 当 dwDrawStage 成员等于 CDDS_PREPAINT 和 CDDS_PREERASE 时,某些控件首先发送CDDS_PREERASE消息,并期望返回值指示将发送哪些后续消息。 有关演示状态和绘制阶段的代码示例,请参阅 使用自定义绘图自定义控件的外观

要求

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