0

所以这是我的问题,我有一个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 或函数 insertitem 。谢谢你。

4

1 回答 1

0

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

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

于 2011-10-28T08:21:07.010 回答