如何设置NMLISTVIEW结构体中的lParam参数?
NMLISTVIEW中lParam成员的设置方法
NMLISTVIEW里的lParam并非始终未定义,它是ListView控件单个项目的自定义数据存储字段,仅在非项目级的通知消息中才会处于未定义状态。
如何设置这个值
要给项目绑定自定义lParam,你需要在创建或更新ListView项目时,通过LVITEM结构体的lParam字段指定:
- 调用
ListView_InsertItem插入新项目时,填充传入的LVITEM结构体的lParam字段,该值会和对应项目绑定; - 调用
ListView_SetItem更新已有项目时,也可以通过LVITEM的lParam修改项目的自定义数据。
当ListView发送和单个项目相关的通知时,NMLISTVIEW结构体中的lParam就会自动被填充为该项目预先设置的自定义值。
哪些通知会用到这个lParam
只有针对具体ListView项目的通知,才会有效填充这个字段,典型的包括:
LVN_ITEMACTIVATELVN_ITEMCHANGEDLVN_ITEMCHANGINGLVN_GETDISPINFO(用于自定义项目数据场景)LVN_DELETEITEM
像LVN_COLUMNCLICK这类不绑定单个项目的通知,NMLISTVIEW的lParam成员是未定义的,不能读取或依赖该值。
内容的提问来源于stack exchange,提问作者Peter Nimmo
相关产品推荐
相关产品推荐

