CString dance[] = {L"Atb", L"Tiesto", L"Madonna", L"Paul van Dyk", L"Armin van Burren", L"Jennifer Lopez"};
for(int i = 0; i < m_ItemsListBox.GetCount(); ++i)
{
CString item;
int length = m_ItemsListBox.GetTextLen(i);
m_ItemsListBox.GetText(i, item.GetBuffer(length));
for(int j = 0; j < sizeof(dance)/sizeof(*dance); ++j)
{
if(item != dance[j])
{
m_ItemsListBox.DeleteString(i);
}
}
}
Я пытаюсь удалить из списка (m_ItemsListbox) все элементы, которые не являются частью массива CString. Но то, как я его кодировал, не работает, потому что, если первый элемент отличается от другого, он удалит его без поиска во всем массиве.
Не казалось трудной задачей, но я действительно не представляю, как это сделать. Я думаю, что одним из способов должно быть использование CList вместо массива, потому что в нем есть метод find (), но мне это не нравится, потому что я должен вручную добавить все элементы, у вас, ребята, есть другая идея? Или решение CList является единственным?
Извините, я новичок в MFC. Спасибо за ваше время.