NMDAYSTATE 是 Win32 API 中的一个结构体,通常用于日期选择控件(DateTime Picker)的通知消息 MCN_GETDAYSTATE 中。该结构体的定义在 Commctrl.h 头文件中。

以下是 NMDAYSTATE 结构的定义:
typedef struct tagNMDAYSTATE {
    NMHDR       nmhdr;
    SYSTEMTIME  stStart;
    int         cDayState;
    LPMONTHDAYSTATE prgDayState;
} NMDAYSTATE, *LPNMDAYSTATE;

结构体成员的含义如下:

  •  nmhdr: NMHDR 结构体,包含通知消息的标准头部信息,如消息源、消息码等。

  •  stStart: SYSTEMTIME 结构体,表示日期范围的起始日期。

  •  cDayState: 表示 prgDayState 数组中的元素个数,即日期状态的数量。

  •  prgDayState: 指向一个数组,该数组包含日期状态的信息。每个元素都是一个 MONTHDAYSTATE 结构体,用于描述某一天的状态。


MONTHDAYSTATE 结构体用于描述一个月中每一天的状态,定义如下:
typedef struct {
    WORD wDay;
    WORD cState;
} MONTHDAYSTATE, *LPMONTHDAYSTATE;

  •  wDay: 表示一个月中的某一天(1 到 31)。

  •  cState: 表示该天的状态。具体状态值可以是 DWM_S_DISABLED、DWM_S_SELECTED 等。


使用 NMDAYSTATE 结构体,可以在接收到 MCN_GETDAYSTATE 通知消息时获取日期选择控件中每一天的状态信息。


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