PRB: CListCtrl Inserting Items Slow If in Icon Modes (149342)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++, 32-bit Editions 2.1
    • Microsoft Visual C++, 32-bit Editions 2.2
    • Microsoft Visual C++, 32-bit Editions 4.0
    • Microsoft Visual C++, 32-bit Editions 4.1

This article was previously published under Q149342

SYMPTOMS

Inserting a large number of items into a CListCtrl simultaneously may take a long time if the control is in the LVS_ICON or LVS_SMALLICON modes.

RESOLUTION

Before starting to insert the items, disable painting of the control and re-enable the painting when the insertions are done. For more information see the "Sample Code" section of this article.

STATUS

This behavior is by design.

MORE INFORMATION

A CListCtrl can display its contents in one of four styles: LVS_ICON, LVS_SMALLICON, LVS_LIST, or LVS_REPORT. The problem does not show up if the control is in the LVS_LIST or the LVS_REPORT modes.

Sample Code

//.....

    m_List.SetRedraw(FALSE); // turn drawing off regardless of list mode

//....
//Insert the items
//....

    m_List.SetRedraw(TRUE); // turn drawing back on and update the window
    m_List.Invalidate();
    m_List.UpdateWindow();
				

Modification Type:MajorLast Reviewed:10/17/2003
Keywords:kbcode kbIcon kbListView kbprb KbUIDesign KB149342