列表控件知道行数怎么获取当前值
2017-04-03 · 知道合伙人软件行家
关注
展开全部
这是我的程序代码片段,有关获取鼠标点到列表框行列的代码,发给你参考下:
typedef pair<int,int> CellIndex; // Row, Column
// 当鼠标右键点击时有一个CPoint传给你,然后根据CPoint来获取列表框的行和列。
// 用HitTest函数即可获取。
CListCtrlEx::CellIndex CListCtrlEx::PointToIndex(const CPoint&point)
{
LVHITTESTINFO lvHitTestInfo;
CRect rect;
lvHitTestInfo.pt=point;
if(HitTest(&lvHitTestInfo)>=0||(SubItemHitTest(&lvHitTestInfo)>=0)&&lvHitTestInfo.iItem>=0)
{
intnRow =lvHitTestInfo.iItem;
intnColumnCount =GetColumnCount();
for(intnColumn=0;nColumn<nColumnCount;++nColumn)
{
if(GetCellRect(nRow,nColumn,rect))
{
if(rect.PtInRect(point))
{
return make_pair(nRow,nColumn);
}
}
}
}
return make_pair(-1,-1);
}
typedef pair<int,int> CellIndex; // Row, Column
// 当鼠标右键点击时有一个CPoint传给你,然后根据CPoint来获取列表框的行和列。
// 用HitTest函数即可获取。
CListCtrlEx::CellIndex CListCtrlEx::PointToIndex(const CPoint&point)
{
LVHITTESTINFO lvHitTestInfo;
CRect rect;
lvHitTestInfo.pt=point;
if(HitTest(&lvHitTestInfo)>=0||(SubItemHitTest(&lvHitTestInfo)>=0)&&lvHitTestInfo.iItem>=0)
{
intnRow =lvHitTestInfo.iItem;
intnColumnCount =GetColumnCount();
for(intnColumn=0;nColumn<nColumnCount;++nColumn)
{
if(GetCellRect(nRow,nColumn,rect))
{
if(rect.PtInRect(point))
{
return make_pair(nRow,nColumn);
}
}
}
}
return make_pair(-1,-1);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询