这是一个CListCtrl,我通过 m_list.InsertItem(0,temp);
rec.GetFieldValue("user_name",un);
m_list.SetItemText(0,1,temp);
rec.GetFieldValue("user_password",up);
m_list.SetItemText(0,2,temp);
rec.GetFieldValue("user_memo",um);
m_list.SetItemText(0,3,temp);在里面添加了一些内容
现在我想实现这样一个效果,双击某一项,那一项就变成可以编辑的,可以进行修改。比如说,我双击那个Angeling,然后光标就在那里面了,可以修改它的内容。至于怎么写回去,这个应该很简单了,用Get...的应该就可以,关键在于我没办法实现:双击它,它就可编辑,这一个功能……求助!

解决方案 »

  1.   

    嵌入一个编辑框就可以,网上有现成的类CListCtrlEx,或者使用其他带有编辑功能的控件。
      

  2.   

    void CMyList::PreSubclassWindow()
    {
    m_Edit.Create(WS_CHILD|WS_CLIPSIBLINGS|WS_EX_TOOLWINDOW|WS_BORDER,
    CRect(0,40,10,50),this,ID_EDIT);
    m_Edit.SetParent(this);
    CListCtrl::PreSubclassWindow();
    }void CMyList::OnLButtonDblClk(UINT nFlags, CPoint point)
    {
    LVHITTESTINFO lvhti; lvhti.pt = point;
    lvhti.flags=LVHT_ONITEMLABEL;
    this->SubItemHitTest(&lvhti);
    int nItem = lvhti.iItem;
    int nSubItem = lvhti.iSubItem; if (lvhti.flags & LVHT_ONITEMLABEL)
    {
    if (nSubItem == 1)
    {
    CRect rectCell;
    this->GetSubItemRect(nItem, nSubItem, LVIR_LABEL,rectCell);
    m_Edit.m_nItem = nItem;
    m_Edit.m_nSubItem = nSubItem;
    m_Edit.m_strText = this->GetItemText(nItem, nSubItem);
    m_Edit.MoveWindow(&rectCell, TRUE);
    m_Edit.SetFocus();
    m_Edit.SetSel(0, -1); 
    m_Edit.ShowWindow(SW_SHOW);
    }
    }
    CListCtrl::OnLButtonDblClk(nFlags, point);
    } 单击时实现编辑框
      

  3.   

    自己重写当你点击某个item的时候在上面画一个编辑框 不过我建议用BCG的CBCGPGridCtrl
      

  4.   

    一般不可以编译的话就动态创建一个编译框,写入数据后判断FOCUS状态写入对应控件。。