在毕业设计中,发现,listview中每改变一次选择,OnItemchanged函数执行了,三次,后来查证之后发现,state不光是选择的变化,还包括了焦点,还有其它的的变化
第1次是iOldItem从LVIS_SELECTED到0(取消选择)
第2次是iOldItem从LVIS_FOCUSED到0(取消焦点)
第3次是iNewItem从0到LVIS_SELECTED | LVIS_FOCUSED(获得选择,同时获得焦点)
只在获得选择的时候执行,就需要这样
if( (pNMListView->uNewState & LVIS_SELECTED) &&
!(pNMListview->uOldState & LVIS_SELECTED) )
{
int nNewItem = pNMListView->iItem;
……
}

文章 (RSS)