2006-5月-17的归档

 在毕业设计中,发现,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;
    ……
}

Tags:

Comments 3 Comments »