Freigeben über


CListBox::InitStorage

Belegt zum Speichern von Listenfeldelementen Speicher.

int InitStorage( 
   int nItems, 
   UINT nBytes  
);

Parameter

  • nItems
    Gibt die Anzahl der Elemente, die hinzuzufügen.

  • nBytes
    Gibt den Arbeitsspeicher, in Bytes an, die für Elementzeichenfolgen zuzuordnen.

Rückgabewert

Wenn erfolgreich, ist die maximale Anzahl von Elementen, die das Listenfeld speichern kann, bevor eine Neubelegung des Speichers erforderlich ist; andernfalls LB_ERRSPACE, signifikant nicht genügend Arbeitsspeicher verfügbar.

Hinweise

Rufen Sie diese Funktion auf, bevor Sie viele Elemente zu CListBox hinzufügen.

Diese Funktion ermöglicht, die Initialisierung von Listenfeldern zu beschleunigen, die viele Elemente haben (mehr als 100). Es weist den angegebenen Arbeitsspeicher zu, sodass folgende AddString, InsertString und Dir-Funktionen die kürzeste mögliche Verarbeitungsdauer. Sie können Schätzungen für die Parameter verwenden. Wenn Sie Überschätzung, entweder zusätzlicher Arbeitsspeicher zugeordnet werden; wenn Sie Underestimate, die normale Zuordnung für Elemente verwendet werden, die die zugeteilte Menge überschreiten.

Nur Windows 95/98: Der nItems-Parameter wird den 16-Bit-Werten beschränkt. Dies bedeutet, dass Listenfelder mehr als 32.767 Elemente enthalten können. Obwohl die Anzahl von Elementen beschränkt ist, wird die Gesamtgröße der Elemente in einem Listenfeld nur durch den verfügbaren Arbeitsspeicher begrenzt.

Beispiel

// 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 );
}

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CListBox-Klasse

Hierarchiediagramm

CListBox::CListBox

CListBox::Create

CListBox::ResetContent

LB_INITSTORAGE