CtrlList вставка элемента с помощью уведомления о доставке после сообщения

Так вот моя проблема, у меня есть CtrlListи я хочу вставить элементы через PostMessage (асинхронный) поэтому сообщение LVM_INSERT_MESSAGEбудет обрабатываться, когда наступит его очередь, но проблема в том, что мне нужно выделить память для LVITEMтак, чтобы я не потерял его, прежде чем вставить элемент. Но после того, как я потерял указатель на выделенный элемент после выхода из функции. И так как элемент вставки создает другой элемент, мне трудно освободить память, для которой я выделяю LVITEM,

Мое решение было с LVM_INSERT_MESSAGE посылает LVN_INSERT_MESSAGE уведомление, в этом уведомлении для вызова функции, но единственный способ получить lvitem - это бросить lparam, но on_notify имеет (NMHDR *pNMHDR, LRESULT *pResult) параметры. Можете ли вы дать мне решение для освобождения этой памяти, я должен вставить ее с пост-сообщением, не говорите мне использовать отправку сообщения или функцию insertitem . Спасибо.

1 ответ

Решение

Отправьте пользовательское сообщение в другое окно, и в его обработчик добавьте элемент, затем освободите память.

Если элемент управления списка уже разделен на подклассы, нет необходимости в другом окне, и сообщение может быть отправлено непосредственно в элемент управления.

Другие вопросы по тегам