使用一个ListCtrl来显示表格相关的数据时,
ChartListCtrlDraw m_ctrlList;
之前的代码中都用:
int nIndex = m_ctrlList.GetSelectionMark();
if (nIndex != -1)
{ //do something
}
来返回用户选中行号,但是在实际调试中发现,当用户没选中有值的那些行时,并没有按预期返回-1,而是返回了用户上一次选择的(有值)行数。
改为:
//int nIndex = m_ctrlList.GetSelectionMark();//GetSelectionMark()应该返回当前选定的行,但是它将返回先前选定的项目
int nIndex = m_ctrlList.GetNextItem(-1, LVNI_SELECTED);//使用该语句可以得到正确的答案
即能得到-1,也就是用户没有选中有值行时返回-1。