来自codeproject的选定单元格CGridCtrl

Selected cells CGridCtrl from codeproject

我需要使用以下代码为控件 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() 来找到一个选中的单元格。唯一的最后一个单元格 return TRUE。有没有办法确定为控件选择的单元格?

我不知道单元格中的标志是否正确,但检查单元格是否被选中的正确函数是:

BOOL CGridCtrl::IsCellSelected(CCellID &cell) const
BOOL CGridCtrl::IsCellSelected(int nRow, int nCol) const

只需检查执行情况。有一个包含所有选定范围的 m_SelectedCellMap。