CComboBox::InitStorage
更新 : 2007 年 11 月
コンボ ボックスのリスト ボックス内の項目を格納するためにメモリを割り当てます。
int InitStorage(
int nItems,
UINT nBytes
);
パラメータ
nItems
追加する項目の数を指定します。nBytes
項目の文字列に割り当てるメモリ領域のサイズをバイト単位で指定します。
戻り値
正常終了した場合は、メモリを再割り当てする必要が生じるまでの間に、コンボ ボックスのリスト ボックスに格納できる項目の最大数を返します。メモリが不足している場合は、CB_ERRSPACE を返します。
解説
CComboBox のリスト ボックスに多数の項目を追加する前に、この関数を呼び出してください。
Windows 95 と Windows 98 に限り、パラメータ wParam は 16 ビット値に制限されます。したがって、リスト ボックスには 32,767 より多くの項目を保持できません。項目の数は制限されていますが、リスト ボックス内の項目の合計サイズは、使用できるメモリの容量によってだけ制限されます。
この関数を使用すると、100 以上の多くの項目を持つリスト ボックスをすばやく初期化できます。以降に続く AddString、InsertString、および Dir の各関数が可能な限り最短の時間で終了するように、指定されたメモリの総量を前もって割り当てます。パラメータには概数を使用できます。多く指定した場合、余分なメモリが割り当てられます。少なく指定した場合、あらかじめ割り当てられた量を超えた項目には、通常の方法でメモリが割り当てられます。
使用例
// Initialize the storage of the combo box to be 256 strings with
// about 10 characters per string, performance improvement.
int nAlloc = pmyComboBox->InitStorage(256, 10);
ASSERT(nAlloc != CB_ERRSPACE);
// Add 256 items to the combo box.
CString strAdd;
for (int i = 0; i < 256; i++)
{
strAdd.Format(_T("item string %d"), i);
m_pComboBox->AddString(strAdd);
}
必要条件
ヘッダー : afxwin.h