NMITEMACTIVATE 是 Win32 API 中的一个结构体,通常用于通知消息 NM_CLICK、NM_RCLICK、NM_DBLCLK、NM_RDBLCLK、NM_RETURN 和 NM_RRETURN 中,与 Windows 控件中的通用控件列表视图(ListView)相关。这个结构体用于传递有关 ListView 中项目激活(点击)的信息。结构体的定义如下:
typedef struct tagNMITEMACTIVATE {
    NMHDR hdr;
    int   iItem;
    int   iSubItem;
    UINT  uNewState;
    UINT  uOldState;
    UINT  uChanged;
    POINT ptAction;
    LPARAM lParam;
    UINT  uKeyFlags;
} NMITEMACTIVATE, *LPNMITEMACTIVATE;

结构体成员的含义如下:

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

  •  iItem: 表示与激活项目相关的索引。

  •  iSubItem: 表示与激活项目相关的子项索引。

  •  uNewState: 表示激活项目的新状态。

  •  uOldState: 表示激活项目的旧状态。

  •  uChanged: 表示状态发生变化的位掩码。

  •  ptAction: 表示激活项目的位置。

  •  lParam: 表示激活项目的应用程序定义的数据。

  •  uKeyFlags: 表示与激活操作相关的键盘标志,如 CTRL、SHIFT 等。


这个结构体通常用于处理 ListView 中项目的点击、双击、Enter 键等操作的通知。应用程序可以通过检查结构体中的成员来获取有关激活项目的详细信息,以便执行相应的操作。

请注意,这个结构体是用于通用控件列表视图(ListView),而不是其他类型的控件。


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