CtrlList вставка элемента с помощью уведомления о доставке после сообщения - PullRequest
0 голосов
/ 28 октября 2011

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

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

1 Ответ

0 голосов
/ 28 октября 2011

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

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

...