次の方法で共有


CListBox::InitStorage

リスト ボックスの項目を格納するメモリを割り当てます。

int InitStorage(
   int nItems,
   UINT nBytes 
);

パラメーター

  • nItems
    追加する項目の数を指定します。

  • nBytes
    項目の文字列に割り当てるメモリ領域のサイズをバイト単位で指定します。

戻り値

正常終了した場合は、メモリの再割り当てが必要となる前に格納できるリスト ボックスの項目の最大数を返します。それ以外の場合は LB_ERRSPACE を返します。十分なメモリが存在しないことを意味します。

解説

大量の項目を CListBox に追加する前に、この関数が呼び出されます。

この関数を使用すると、100 以上の多くの項目を持つリスト ボックスをすばやく初期化できます。以降に続く AddStringInsertString、および Dir の各関数が可能な限り最短の時間で終了するように、指定されたメモリの総量を前もって割り当てます。パラメーターには概数を使用できます。多く指定した場合、余分なメモリが割り当てられます。少なく指定した場合、あらかじめ割り当てられた量を超えた項目には、通常の方法でメモリが割り当てられます。

Windows 95 と Windows 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 );
}

必要条件

ヘッダー: afxwin.h

参照

関連項目

CListBox クラス

階層図

CListBox::CListBox

CListBox::Create

CListBox::ResetContent

LB_INITSTORAGE