大家好,我要做一个像excel一样,能编辑和添加的列表控件,网上有关于可编辑的做法,那怎样才能在空白的表格中也可以编辑呢,

解决方案 »

  1.   

    参考下这个 http://www.codeproject.com/KB/miscctrl/gridctrl.aspx
      

  2.   

    CListCtrl + CEdit控件,让CEdit作为CListCtrl控件的子窗口控件
      

  3.   

    我使用的是CListCtrl控件,已经实现了对cell中已存的数据的编辑功能,现在要做如何新增加一行数据
      

  4.   

    CListCtrl::InsertItem();
    CListCtrl::SetItemText();
    ??
      

  5.   

    可以点击某按钮,然后发送某消息给CMyListCtrl,让它重绘 新增的一行?
      

  6.   

    是实现双击单元格,然后手工添加,像excel一样的在列表中添加数据
      

  7.   

    添加鼠标双击事件的响应函数,填写代码如下:
    void CEditListCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)
    {
     // TODO: Add your message handler code here and/or call default
         CRect rcCtrl;        //数据项所在区域
      LVHITTESTINFO lvhti; //用于列表控件子项鼠标点击测试的数据结构
         lvhti.pt = point;  //输入鼠标位置
      int nItem = CListCtrl::SubItemHitTest(&lvhti);//调用基类的子项测试函数,返回行号
      if(nItem == -1)   //如果鼠标在控件外双击,不做任何处理
         return;
      int nSubItem = lvhti.iSubItem;//获得列号
      CListCtrl::GetSubItemRect(nItem,nSubItem,LVIR_LABEL,rcCtrl);
    //获得子项所在区域,存入rcCtrl
        ShowEdit(TRUE,nItem,nSubItem,rcCtrl); //调用自定义函数,显示编辑框
     CListCtrl::OnLButtonDblClk(nFlags, point);//调用基类鼠标鼠标双击事件的响应函数
    }
    //////////////////////////////////////////////////////////////////////////////
    以上是对原来有数据的单元格的编辑处理。当我双击下面空白单元格的时候,nItem的值为-1.如果修改,才能实现在空白的单元格中也可以编辑呢