C++ CtrlList通过postmessage treat通知插入项目

C++ CtrlList通过postmessage treat通知插入项目,c++,winapi,postmessage,listctrl,C++,Winapi,Postmessage,Listctrl,这就是我的问题,我有一个CtrlList,我想通过PostMessage(asyncron)插入项目,因此消息LVM\u insert\u message,将在轮到他时进行处理,但问题是我需要为LVITEM分配内存,以便在插入项目之前不会丢失它。但在退出函数后,我松开了指向已分配项的指针。由于insert item创建了另一个项,我发现很难释放为LVITEM分配的内存 我的解决方案是,因为LVM_INSERT_MESSAGE发送LVN_INSERT_MESSAGE通知,在该通知上调用函数,但获取

这就是我的问题,我有一个
CtrlList
,我想通过
PostMessage
(asyncron)插入项目,因此消息
LVM\u insert\u message
,将在轮到他时进行处理,但问题是我需要为
LVITEM
分配内存,以便在插入项目之前不会丢失它。但在退出函数后,我松开了指向已分配项的指针。由于insert item创建了另一个项,我发现很难释放为
LVITEM
分配的内存


我的解决方案是,因为
LVM_INSERT_MESSAGE
发送
LVN_INSERT_MESSAGE
通知,在该通知上调用函数,但获取lvitem的唯一方法是抛出一个LPRAM,但在通知上有(
NMHDR*pNMHDR,LRESULT*pResult
)参数。你能给我一个释放内存的解决方案吗?我必须用postmessage插入它,不要告诉我使用sendmessage或函数insertitem。谢谢。

将自定义消息发布到其他窗口,并在其处理程序中添加该项,然后释放内存


如果列表控件已经被子类化,则不需要其他窗口,消息可以直接发送到控件。

谢谢,这是另一个想法,但我将分配的内存指针放入LVITEM结构的lParam变量中,在处理LVN_INSERTITEM消息后,它会发送通知,通过获取最后一个插入项的lParam变量并释放存储在其中的内存指针来获取和处理。