从codeproject中选择单元格CGridCtrl

时间:2015-07-23 16:55:37

标签: visual-c++ mfc

我需要使用以下代码为控件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。有没有办法确定为控件选择的单元格?

1 个答案:

答案 0 :(得分:2)

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

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

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