CtrlList通过postmessage处理通知插入项

CtrlList inserting item through postmessage treat notification

本文关键字:插入 通知 处理 通过 postmessage CtrlList      更新时间:2023-10-16

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

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

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

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