【发布时间】:2011-06-06 13:15:55
【问题描述】:
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 初学者。感谢您的宝贵时间。
【问题讨论】: