我是这么写的
void CMyListCtrl::OnClick(NMHDR* pNMHDR, LRESULT* pResult) 
{
NMLISTVIEW* pView = (NMLISTVIEW*)pNMHDR;

CString strtemp;
strtemp.Format("单击的是第%d行第%d列",
pView->iItem, pView->iSubItem);
AfxMessageBox(strtemp);

*pResult = 0;
}为什么pView->iItem老是返回-1

解决方案 »

  1.   

    iItem-------MSDN
    Identifies the list-view item, or -1 if not used. int nItem = m_lst.GetNextItem(-1, LVIS_SELECTED);
    最好用OnItemChangeList()
      

  2.   

    这句话是说不用话才返回-1,而iItem在CListCtrl里是使用的,那在OnClick里怎获取行号和列号呢,我用GetFirstSelectedItemPosition也不行,返回值总是0
      

  3.   

    POSITION pos = _list_rec_file.GetFirstSelectedItemPosition();
    int index = _list_rec_file.GetNextSelectedItem(pos); // 获得行号
      

  4.   

    我知道问题出在哪了,我没有设置FULLROWSELECTED属性,所以才会返回-1,只有点第一列的时候才是正确的(这一点刚发现,抱歉)