首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

肾亏~为啥小弟我的CListCtrl的GetNextItem,每次得到的居然都是上一次的选中项?

2012-01-31 
肾亏~~~为啥我的CListCtrl的GetNextItem,每次得到的居然都是上一次的选中项????我试图在按下向上和向下箭

肾亏~~~为啥我的CListCtrl的GetNextItem,每次得到的居然都是上一次的选中项????
我试图在按下向上和向下箭头的时候,读取CListCtrl中的选中项的数据
结果我每次都是读到上一个选中项的数据
比如我按一下向下键,表中从第一项就到了第二项,而我得到的数据是第一项的
我再按一下向下键,表中从第二项到了第三项,而我得到了第二项的数据。

函数如下:

void   CDlgIC::OnLvnKeydownListIcQx(NMHDR   *pNMHDR,   LRESULT   *pResult)
{
LPNMLVKEYDOWN   pLVKeyDow   =   reinterpret_cast <LPNMLVKEYDOWN> (pNMHDR);
//   TODO:   在此添加控件通知处理程序代码

if((pLVKeyDow-> wVKey==VK_DOWN)||(pLVKeyDow-> wVKey==VK_UP))
  {
int   nIndexSelected;
if((nIndexSelected=m_listIC.GetNextItem(-1,LVNI_SELECTED))!=-1)
{
str1   =   _wtoi(m_listIC.GetItemText(nIndexSelect,0));
str2   =   _wtoi(m_listIC.GetItemText(nIndexSelect,1));
this-> UpdateData(FALSE);
}
  }

*pResult   =   0;
}

[解决办法]
CListCtrl c;
POSITION pos = c.GetFirstSelectedItemPosition();
while( pos )
{
int n = c.GetNextSelectedItem(pos);
}
使用这个方法,N就是你选择的行
[解决办法]
GetNextItem(-1,LVNI_SELECTED))!=-1)
看看MSDN怎么说这个函数用法的。后面的标志LVNI_SELECTED有问题!

热点排行