Share via


CListBox::InitStorage

int InitStorage( int nItems**, UINT** nBytes );

Return Value

If successful, the maximum number of items that the list box can store before a memory reallocation is needed, otherwise LB_ERRSPACE, meaning not enough memory is available.

Parameters

nItems

Specifies the number of items to add.

nBytes

Specifies the amount of memory, in bytes, to allocate for item strings.

Remarks

Allocates memory for storing list-box items. Call this function before adding a large number of items to a CListBox.

This function helps speed up the initialization of list boxes that have a large number of items (more than 100). It preallocates the specified amount of memory so that subsequent AddString, InsertString, and Dir functions take the shortest possible time. You can use estimates for the parameters. If you overestimate, some extra memory is allocated; if you underestimate, the normal allocation is used for items that exceed the preallocated amount.

Windows 95 only: The nItems parameter is limited to 16-bit values. This means list boxes cannot contain more than 32,767 items. Although the number of items is restricted, the total size of the items in a list box is limited only by available memory.

Example

// The pointer to my list box.
extern CListBox* pmyListBox;

// Initialize the storage of the list box to be 256 strings with
// about 10 characters per string, performance improvement.
int n = pmyListBox->InitStorage(256, 10);
ASSERT(n != LB_ERRSPACE);

// Add 256 items to the list box.
CString str;
for (int i=0;i < 256;i++)
{
   str.Format(_T("item string %d"), i);
   pmyListBox->AddString( str );
}

CListBox OverviewClass MembersHierarchy Chart

See Also   CListBox::CListBox, CListBox::Create, CListBox::ResetContent,