NMLINK 是 Win32 API 中的一个结构体,通常用于通知消息 NM_CLICK、NM_RETURN 和 NM_RCLICK、NM_RRETURN 中,与 Windows 控件中的超链接控件(SysLink 控件)相关。这个结构体用于传递有关超链接控件中的链接操作的信息。结构体的定义如下:
typedef struct tagNMLINK {
    NMHDR hdr;
    LITEM item;
} NMLINK, *PNMLINK;

结构体成员的含义如下:

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

  •  item: LITEM 结构体,包含有关链接的详细信息。


LITEM 结构体定义如下:
typedef struct tagLITEM {
    UINT mask;
    int  iLink;
    UINT state;
    UINT stateMask;
    WCHAR szID[MAX_LINKID_TEXT];
    WCHAR szUrl[MAX_LINKID_TEXT];
} LITEM, *PLITEM;

LITEM 结构体的成员含义如下:

  •  mask: 用于标识结构体的哪些成员是有效的,可以是 LIF_ITEMINDEX、LIF_STATE、LIF_ITEMID、LIF_URL 等常量的组合。

  •  iLink: 表示链接的索引。

  •  state: 表示链接的状态。

  •  stateMask: 表示 state 中哪些位是有效的。

  •  szID: 表示链接的标识符,以 NULL 结尾的字符串。

  •  szUrl: 表示链接的 URL 地址,以 NULL 结尾的字符串。


NMLINK 结构体通常用于处理超链接控件中的链接点击、右键点击等操作的通知。应用程序可以通过检查结构体中的成员来获取有关链接的详细信息,以便执行相应的操作。


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