[까막] 고속 추가 전용 - 리스트 컨트롤   | VC++ 컨트롤관련 2002-08-07 오전 11:57:17
까막 (crowback)  까막님께 메시지 보내기까막님을 내 주소록에 추가합니다.까막님의 개인게시판 가기 번호: 12923   / 평점:  (-)  / 읽음:2,929
MFC Virtual List Control -  Andrew Small by codeguru site;
먼저 여기 사용된 부분은 코드구루의 앤드류 스몰의 자료를 수정한 것입니다.
앤드류의 소스는 CLabelItem 클래스를 사용자가 직접 수정하거나, 데이터를 삽입할 때마가 불필요한 코딩이
필요하고, 또한 데이터를 한꺼번에 삽입하는것만 가능하도록 설계되어 있어 불편한 점이 조금 있습니다.

위의 소스를 수정하여.. Insert 없이 Add 전용의 고속 리스트 컨트롤을 만들어 보았습니다.
이러한 리스트는 수시로 없데이트 되는 데이터가 아닌, 로그 값이나 특정 수치값을 계속적으로 쌓아 놓는
구조에 알맞습니다.
만약 인터넷 트레픽을 수치상으로 시간과 장소, 대역폭, 사용데이트 등을...
시간대별로 계속 쌓아서 감시를 한다던가.. 하는 것.. 혹은...

여러군대에서 발생한 자료를 시간대 별로 한꺼번에 몰아서 데이터를 읽어 와 리스트에 쌓는다던가 하는
작업에 맞게 구성되었습니다.

원래의 InsertItem() 를 막고, AddItem() 함수로 대치하였습니다.
SetItemText() 함수와 GetItemText() 함수는 그대로 적용됩니다.
DeleteItem()는 삭제되었고,
DeleteAllItems() 함수도 그대로 적용됩니다.

테스트 결과 3개의 컬럼이고, 각각 10여바이트 정도의 문자열을 텍스트를 갖는경우.
약 20000 개 정도의 데이터를 삽입하는데 걸리는 시간은 P3 933, RAM 256, Release Mode에서
삽입과 화면 업데이트까지 약 0.7초 정도 걸립니다.

각각 컬럼별로 헤더에서 오름차순 정렬 혹은 내림차순 정열은 각각 0.2-0.3초 정도 소요됩니다.

물론 레포트 타입 전용입니다.
이미지 리스트도 지원하지 않습니다.

그럼 이만..

+ Recent posts