여기 내 문제는 내가 CtrlList
이고, PostMessage
(asyncron)을 통해 항목을 삽입하고자하므로 메시지가 LVM_INSERT_MESSAGE
일 때 처리되지만, 문제는 내가 LVITEM
에 대한 메모리를 할당해야하므로 항목을 삽입하기 전에 느슨하게하지 않아야합니다. 하지만 난 후 함수를 종료 한 후 할당 된 항목에 대한 포인터를 잃어버린. 그리고 insert item은 다른 아이템을 생성하기 때문에, 나는 LVITEM
에 할당 된 메모리를 할당 해제하기가 어렵습니다. LVM_INSERT_MESSAGE
이 함수를 호출하는 통지에 LVN_INSERT_MESSAGE
통지를 보내지 만, lvitem을 얻을 수있는 유일한 방법은 LPARAM을 던져 때문에CtrlList postmessage 처리 알림을 통해 항목 삽입하기
내 솔루션,하지만 ON_NOTIFY은 (NMHDR *pNMHDR, LRESULT *pResult
) 매개 변수가 있습니다. 그 메모리 할당을 해제하기위한 해결책을 줄 수 있습니까? postmessage와 함께 삽입해야합니다. send message 나 function insertitem을 사용하라고 말하지 마십시오. 고맙습니다.
고마워, 이건 다른 생각이지만 LVITEM 구조체의 lParam 변수에 할당 된 메모리 포인터를 넣고 LVN_INSERTITEM 메시지가 처리 된 후 마지막으로 가져가는 알림 메시지를 보낸다. 항목의 lParam 변수를 삽입하고 거기에 저장된 메모리 포인터의 할당을 해제합니다. –