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