我需要使用以下代码为控件CGridCtrl找到所选单元格。
CCellRange cells = m_Grid.GetSelectedCellRange();
if( cells.Count() == 0 )
return ;
for (int i = cells.GetMaxRow(); i >= cells.GetMinRow(); i--)
{
for (int j=cells.GetMinCol(); j<=cells.GetMaxCol();j++)
{
BOOL selected = m_Grid.GetCell(i,j)->IsSelected();
TRACE(_T("Row %d Column %d Selected = %d State %d\n"),i,j,selected, m_Grid.GetCell(i,j)->GetState());
if(selected)
{
m_Grid.DeleteRow(i);
break;
}
}
}
由于我选择的单元格不连续,我需要使用IsSelected()来查找所选的单元格。唯一的最后一个单元格返回TRUE。有没有办法确定为控件选择的单元格?
答案 0 :(得分:2)
我不知道单元格中的标志是否正确,但是检查单元格是否被选中的正确函数是:
BOOL CGridCtrl::IsCellSelected(CCellID &cell) const
BOOL CGridCtrl::IsCellSelected(int nRow, int nCol) const
只需检查实施情况。有一个m_SelectedCellMap包含所有选定的范围。