MFC와 함께 Visual C++ 사용.DeleteAllItems와 함께 LB_INITSTORAGE 사용 하시겠습니까?
이 블로그 (Speeding up adding items to a combobox or listbox)를 기반으로 많은 항목을 추가 할 때 내 목록 상자의 깜박임 현상을 줄이기 위해 SendMessage(hwndListBox, LB_INITSTORAGE, cItems, nBytes);
으로 전화를 걸고 싶습니다.
기본적으로이 기술은 목록 상자가 커짐에 따라 계속적으로 메모리를 다시 할당하는 대신 LB_INITSTORAGE을 사용하여 문자열에 필요한 메모리를 모두 한 번에 할당하는 것입니다.
제 질문은 LB_INITSTORAGE 메시지를 사용하여 메모리를 미리 할당 한 다음 목록 상자 컨트롤에 DeleteAllItems()
을 호출하면 사전 할당 된 메모리를 해제 할 수 있습니까? 즉, 같은 수의 항목을 목록 상자에 다시 추가하려면 LB_INITSTORAGE 메시지를 다시 보내야합니까?