[size=18px]1. 实现目标:如上图所示,我需要在MFC界面的CGrid表格中,通过CheckBox的复选框的状态来获知哪一行被选中,之后要对所选中的行中的数据行进行运算。备注:CGrid表中的数据来源于Access数据库,可否通过CheckBox的状态直接读出在数据库中的位置,然后直接从数据库中获取数据,进行后面的计算。2. 问题:我不知道如何通过复选框的状态来获知所选中的行! 
   如何添加复选框的消息响应函数?我知道有一个GetCheck()函数可以获取复选框的状态,还有一个GetTextRect()函数可以获取单元格文本的位置信息,但是具体怎么用我不清楚!希望知道这个问题的人能够给予详细解答,第一次发帖,奉献出全部积分,望得到网友解答!
[/size]

解决方案 »

  1.   

    http://chenylov.bokee.com/viewdiary.219233311.html6. 得到listctrl中所有行的checkbox的状态      m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);
          CString str;
          for(int i=0; i<m_list.GetItemCount(); i )
          {
               if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i))
               {
                    str.Format(_T("第%d行的checkbox为选中状态"), i);
                    AfxMessageBox(str);
               }
          }
      

  2.   

    楼主,我说的是自己额外添加的CGrid控件啊,不是listctrl控件的。CGridCtrl类里面没有GetCheck函数啊,只有在GGridCellCheck类里面才有。
      

  3.   

    "CGrid" grid 多了去了。
    你用的是 什么 grid ,从那里来的 ?
      

  4.   

    尝试用用看GetElement,这玩样的返回值是CMyVariant属于任意类型,尝试强转类型获取控件类型即可CGrid支持控件editbox和checkbox