BCGControlBar 中有 表格控件 Grid,在按下SHIFT键或者Ctrl 时能选中多行。如何删除这些行呢?通过GetCurSel()可以得到选中的行,但只能得到当前选中的这一行。即使 从1到nrows都判断每行 IsSelected(), 也只能判断当前1行被选中。怎么把选中的行都判断到呢?而且如果是SHIFT键,只选择起始行和结束行就能选中,但判断的时候中间没按过的行应该判断不到的

解决方案 »

  1.   


    遍历行 row 还是 ITEM?遍历行只能判断到1行  IsSelected(),遍历 ITEM 不知道怎么写……请教
      

  2.   

    for(int i = 0; i < nrows; i++)
    {
        bool b = pCtrl->IsRowSelected(i);
        if(b)
       {
          //remove row i
       }
    }以上处理只能处理一行。 如果选中1到3行,只能判断i= 0 时b = true; 当i = 1或2时,b = false(本该是true的)
      

  3.   

    搞定^利用  GetSelectedItems(CList <CBCGPGridItem*, CBCGPGridItem*> &lstSelected) 获取被选中item链表,遍历链表中的元素,取到每个Item对应行的行号,然后 remove.
    谢谢上面各位的帮助……