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数组的一部分。但是,我如何编码它不工作,因为如果第一个元素的不同就将它删除,而不搜索整个数组。删除MFC中的列表框中的特定项目
不似乎是一个艰巨的任务,但我真的没有爱迪如何做到这一点。我想一个方法应该是使用数组的栏列表,而不是因为它有一个find()方法,但我不喜欢它,因为我必须手动添加的所有元素,做你们有另一个爱迪?或者CList解决方案是唯一的解决方案?
对不起,我是一个MFC初学者。谢谢你的时间。
马丁的解决方案将影响码,但关于你的。代码,为什么我得到“不能从int转换为POSITION”,isnt getAt()返回一个int?: -/ – Kobe 2011-06-06 14:05:57
对不起 - 忘了GetAt的工作方式 - 它使用列表中位置的“Position”Pos Line应该更像GetAt(ListIndexItemsToRemove.FindIndex(i))或其他东西。 示例:http://msdn.microsoft.com/en-us/library/et138h3x(v=vs.71).aspx Gawd我讨厌CList - 你有吗一个更好的使用? stl ::列表和向量更好,我记得。 – NotJarvis 2011-06-06 14:29:26