We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you a podcast all about Citrix Workspace, moving to the cloud, and analytics & intelligence. Episode 2 coming soon!Listen Now

x

CListCtrl with 1000's of entries is too slow

l.hudson02
l.hudson02 asked
on
Medium Priority
650 Views
Last Modified: 2013-11-20
I'm using a CListBox to display entries from a large database. My problem is that as the number of entries exceeds a couple of thousand, the time taken to re-draw the ListBox becomes prohibitive. Is there a way of only writing to the Listbox enough entries to fill the screen and then loading new ones from the database as and when the listbox is scrolled. This effect can be seen in the explorer when a directory contains many files. I know that one approach is to use some kind of "virtual listbox" but examples I have seen are very old.
Comment
Watch Question

Commented:
Before adding entries, you should call CWnd::SetRedraw (CListBox is derived from CWnd).

void CWnd::SetRedraw( BOOL bRedraw = TRUE );
 
Parameters
bRedraw   Specifies the state of the redraw flag. If this parameter is TRUE, the redraw flag is set; if FALSE, the flag is cleared.
Remarks
An application calls SetRedraw to allow changes to be redrawn or to prevent changes from being redrawn.
This member function sets or clears the redraw flag. While the redraw flag is cleared, the contents will not be updated after each change and will not be repainted until the redraw flag is set. For example, an application that needs to add several items to a list box can clear the redraw flag, add the items, and then set the redraw flag. Finally, the application can call the Invalidate or InvalidateRect member function to cause the list box to be repainted.


Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.