C/C++/MFC
		
List Controls listview edit 가능하게
2007.10.11 13:55
// Attributesprotected:        int            m_cx;        BOOL           m_nEdit;        CLVEdit m_LVEdit;     void CListEditView::OnBeginLabelEdit(NMHDR* pNMHDR,LRESULT* pResult) 
{    LV_DISPINFO* pDispInfo=(LV_DISPINFO*)pNMHDR;     *pResult=1;     CPoint posMouse;    GetCursorPos(&posMouse);    ScreenToClient(&posMouse);     LV_COLUMN lvc;    lvc.mask=LVCF_WIDTH;     CRect rcItem;    GetListCtrl().GetItemRect(pDispInfo->item.iItem,rcItem,LVIR_LABEL);  if(rcItem.PtInRect(posMouse))
        m_nEdit=0; int nCol=1;
while(m_nEdit==-1 && GetListCtrl().GetColumn(nCol,&lvc)) 
    {        rcItem.left=rcItem.right;        rcItem.right+=lvc.cx; if(rcItem.PtInRect(posMouse))
            m_nEdit=nCol;         nCol++;    } if(m_nEdit==-1)
return;
     HWND hWnd=(HWND)SendMessage(LVM_GETEDITCONTROL); ASSERT(hWnd!=NULL);
    VERIFY(m_LVEdit.SubclassWindow(hWnd));      m_LVEdit.m_x=rcItem.left;    m_LVEdit.m_y=rcItem.top-1;     m_LVEdit.SetWindowText(GetListCtrl().GetItemText(pDispInfo->item.iItem,m_nEdit));      *pResult=0;} void CListEditView::OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult) 
{    LV_DISPINFO* pDispInfo=(LV_DISPINFO*)pNMHDR;     CString sEdit=pDispInfo->item.pszText; if(!sEdit.IsEmpty())
    {      GetListCtrl().SetItemText(pDispInfo->item.iItem,m_nEdit,sEdit);     }     m_nEdit=-1; VERIFY(m_LVEdit.UnsubclassWindow()!= NULL);
     GetListCtrl().SetItemState(pDispInfo->item.iItem,0,LVNI_FOCUSED|LVNI_SELECTED);      *pResult=0;}
 
	
		 


 
    
 
    
 
     
