在 Win32 API 的 Commctrl.h 头文件中,NMCUSTOMDRAW 结构体是自定义绘制通知消息(NM_CUSTOMDRAW)中使用的结构体之一。该结构体用于在控件自定义绘制时传递相关的信息。

以下是 NMCUSTOMDRAW 结构体的定义:
typedef struct tagNMCUSTOMDRAW {
    NMHDR    hdr;             // 标准通知消息头
    DWORD    dwDrawStage;      // 绘制阶段
    HDC      hdc;             // 设备上下文句柄
    RECT     rc;              // 绘制区域的矩形
    DWORD_PTR dwItemSpec;      // 项目的标识符或索引
    UINT     uItemState;      // 项目状态
    LPARAM   lItemlParam;     // 项目参数
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;

  •  hdr: 标准通知消息头。

  •  dwDrawStage: 绘制阶段标志,指示自定义绘制的当前阶段(例如预绘制、绘制、后绘制等)。

  •  hdc: 设备上下文句柄,用于绘制。

  •  rc: 绘制区域的矩形。

  •  dwItemSpec: 项目的标识符或索引,具体取决于控件类型和使用方式。

  •  uItemState: 项目状态标志,描述了项目的状态(例如选中、激活等)。

  •  lItemlParam: 项目参数,通常是一个用户定义的值。


在自定义绘制过程中,应用程序可以根据 dwDrawStage 的值和其他成员来确定当前绘制的阶段以及执行相应的绘制操作。通常,应用程序会在预绘制阶段获取相关信息,然后在绘制阶段进行绘制。




转载请注明出处:http://www.zyzy.cn/article/detail/24908/Win32 API/Commctrl.h/NMCUSTOMDRAW