CListCtrl m_CList ;
CString strReturn = _T("TEST");
for(int i = m_CList .GetItemCount()-1;i>=0;i--)
{
if (strReturn == m_CList .GetItemText(i,1))
{
m_CList .DeleteItem(i);
}
}
這個回圈這樣寫是否存在問題?
uj5u.com熱心網友回復:
行不行,自己試試不就清楚了~uj5u.com熱心網友回復:
不建議,i=CLISTCTRL.GET 這句如果有其它執行緒在操作串列框就會讓此 回圈例外uj5u.com熱心網友回復:
這里應注意一下, for 中,運算式只會計算1次,并不是在每次回圈時都計算運算式。所以,很明顯,當你洗掉元素后,for的運算式沒有被重算,一定會出問題了
uj5u.com熱心網友回復:
for (A;B;C) D;
//等價于
{
A;
while (1) {
if (!(B)) break;
D;
C;
}
}
uj5u.com熱心網友回復:
趙老師的意思是,沒問題的是吧! int i = m_CList .GetItemCount()-1;只會運行一次,在洗掉之后,這個回圈的次數還是保持不變的!uj5u.com熱心網友回復:
趙老師的意思是,沒問題的是吧! int i = m_CList .GetItemCount()-1;只會運行一次,在洗掉之后,這個回圈的次數還是保持不變的!
uj5u.com熱心網友回復:
我覺得沒問題。uj5u.com熱心網友回復:
為什么不直接用FindItem()要自己遍歷對比轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/126460.html
標籤:基礎類
