Поделиться через


CListBox::InitStorage

Выделяет память для хранения элементов списка.

int InitStorage( 
   int nItems, 
   UINT nBytes  
);

Параметры

  • nItems
    Определяет количество элементов для добавления.

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

Возвращаемое значение

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

Заметки

Эта функция вызывается перед добавлением большое число элементов в CListBox.

Эта функция позволяет ускорения инициализации списков, имеющих большое количество элементов (больше чем 100). Он preallocates указанное количество памяти, так что последующие функции AddString, InsertString и Dir примут наименьшее возможное время. Можно использовать оценку параметров. Если overestimate некоторая дополнительная память, выделены; если underestimate, нормальное распределение используются для элементов, которые превышают предварительно число.

Windows 95 только: /98 Параметр nItems ограничен 16-разрядными значениями. Это означает, что список не может содержать более 32.767 элементов. Хотя количество элементов ограничиватьо общий размер элементов в списке ограничивается только доступной памятью.

Пример

// Initialize the storage of the list box to be 256 strings with 
// about 10 characters per string, performance improvement. 
int n = m_myListBox.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);
   m_myListBox.AddString( str );
}

Требования

Header: afxwin.h

См. также

Ссылки

Класс CListBox

Диаграмма иерархии

CListBox::CListBox

CListBox::Create

CListBox::ResetContent

LB_INITSTORAGE