Нет функции сделать это за один раз. Вы можете сделать, как предлагает Джива, простой цикл, проходящий через ваш массив:
CString itemSet[] = {"a","b","c","d"};
for (int i = 0; i < _countof(itemSet); ++i)
{
cb1.AddString(itemSet[i]);
}
Однако, если вы собираетесь использовать его часто, вы можете создать свой собственный производный класс CCombobox и добавить функцию, которая делает это.
class CMyCombo : public CCombobox
{
public:
CMyCombo();
void AddStrings(const CString* strings, int num);
// ...
}
void CMyCombo::AddStrings(const CString* strings, int num)
{
for (int i = 0; i < num; ++i)
{
cb1.AddString(strings[i]);
}
}
На самом деле, я бы, вероятно, использовал контейнер, такой как std::vector
или CStringArray
, но вы поняли.
Кстати, если вы используете строки, которые могут быть локализованы, вы не должны полагаться только на строки. Лучший подход можно найти здесь .
И последнее: обычно не нужно создавать элементы управления на лету. Обычно проще создать для них переменные-члены.