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 | 含义 |
---|---|
|
|
|
擦除周期完成后。 |
|
完成绘制周期后。 |
|
在擦除周期开始之前。 |
|
在绘制周期开始之前。 |
|
|
|
指示 dwItemSpec、 uItemState 和 lItemlParam 成员有效。 |
|
在项目被擦除之后。 |
|
绘制项后。 |
|
在擦除项之前。 |
|
在绘制项之前。 |
|
如果正在绘制子项,则标记与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 | 含义 |
---|---|
|
已选中该项。 |
|
该项处于它的默认状态。 |
|
该项已禁用。 |
|
该项处于焦点中。 |
|
该项变灰。 |
|
该项当前位于指针 (“hot”) 下。 |
|
该项处于不确定的状态。 |
|
该项已被标记。 其含义由实现决定。 |
|
该项已选定。
注意 此标志不适用于具有 LVS_SHOWSELALWAYS 样式的所有者绘制的列表视图控件。 对于这些控件,可以使用 LVM_GETITEMSTATE ( 还是 ListView_GetItemState) 并检查LVIS_SELECTED标志来确定选择 项 。
|
|
版本 6.0。该项显示其键盘提示。 请注意,Comctl32 版本 6 不可再发行。 操作系统。 若要使用 Comctl32.dll 版本 6,请在清单中指定它。 有关清单的详细信息,请参阅 启用视觉样式。 |
|
项是当前位于鼠标指针 (“hot”) 下的控件的一部分,但该项本身不是“hot”。 其含义由实现决定。 |
|
该项是当前位于鼠标指针下 (“hot”) 的拆分按钮的一部分,但项目本身不是“hot”。 其含义由实现决定。 |
|
该项当前是拖放操作的放置目标。 |
lItemlParam
类型: LPARAM
应用程序定义的项数据。
注解
应用程序返回的值取决于当前绘图阶段。 关联的 NMCUSTOMDRAW 结构的 dwDrawStage 成员包含一个指定绘图阶段的值。 当 dwDrawStage 成员等于 CDDS_PREPAINT 和 CDDS_PREERASE 时,某些控件首先发送CDDS_PREERASE消息,并期望返回值指示将发送哪些后续消息。 有关演示状态和绘制阶段的代码示例,请参阅 使用自定义绘图自定义控件的外观。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | commctrl.h |