Шаг 904 - CListBox::InitStorage

int InitStorage( int nItems, UINT nBytes );

Возвращаемое значение
Если успешно, максимальное число элементов, которые список может сохранять перед перераспределением памяти, иначе LB_ERRSPACE, означая недостаток памяти.

Параметры
nItems
Определяет число элементов, чтобы добавить.
nBytes
Определяет объем памяти, в байтах, для распределения строк элемента.

Замечания
Распределяет память для сохранения элементов списка. Вызовите эту функцию перед добавлением большого количества элементов к CListBox.
Эта функция ускоряет инициализацию списков которые имеют большое количество элементов (больше чем 100). Это распределяет определенный объем памяти так, чтобы последующий AddString, InsertString, и функция Dir тратили самое короткое возможное время. Вы можете использовать оценки для параметров. Если Вы переоцениваете, некоторая память дополнительного пространства распределена, если Вы недооцените, нормальное распределение используется для элементов, которые превышают количество.
Windows 95 только: nItems параметр ограничен к 16-разрядных значений. Это означает, что списки не могут содержать больше чем 32,767 элемента. Хотя число элементов ограничено, полный размер элементов в списке ограничен только доступной памятью.

Пример

// Указатель на мой список.
extern CListBox* pmyListBox;

// Инициализировать память списка, чтобы быть 256 строками с
// приблизительно 10 символов на строку, усовершенствование эффективности.
int n = pmyListBox->InitStorage(256, 10);
ASSERT(n != LB_ERRSPACE);

// Добавить 256 элементов к списку.
CString str;
for (int i=0;i < 256;i++)
{
	str.Format(_T("item string %d"), i);
	pmyListBox->AddString( str );
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 11.02.2002