我为listcontrol添加了NM_DBLCLICK,双击的动作。我想当我双击某一行时,将该项第一列的图标变成另一个图标。怎么做啊?

解决方案 »

  1.   

    获取该项关联图标的索引值,然后:
    CImageList::Replace(int nImage, HICON hIcon);
      

  2.   

    BOOL SetItemState( int nItem, LVITEM* pItem );
    修改
    typedef struct _LVITEM { 
        UINT mask; 
        int iItem; 
        int iSubItem; 
        UINT state; 
        UINT stateMask; 
        LPTSTR pszText; 
        int cchTextMax; 
        int iImage; 
        LPARAM lParam;
    #if (_WIN32_IE >= 0x0300)
        int iIndent;
    #endif
    } LVITEM, FAR *LPLVITEM; 
    iImage的值
      

  3.   

    怎样获取该项关联图标的索引值,CImageList::Replace(int nImage, HICON hIcon); 做了之后没改变啊?
      

  4.   


    试试再调用CListCtrl::RedrawItems(nItem, nItem); //重绘该项目。
      

  5.   

    怎样获取该项的LVITEM* pItem ?
      

  6.   

    GetItem 获取该项关联图标的索引值
      

  7.   

    LVITEM *pItem;
    m_List.GetItem(pItem);
    pItem->iImage=1;
    m_List.SetItemState(pItem->iItem,pItem);
    为什么每次pItem都是错误值
      

  8.   

    LVITEM lvi;
    lvi.mask = LVIF_IMAGE;
    lvi.iSubItem = 0;
    lvi.iItem = nItem; //填写项目的索引值。
    m_List.GetItem(&lvi);m_ImageList.Replace(lvi.iImage, hIcon);
    m_List.RedrawItems(nItem, nItem);
      

  9.   

    谁能给一个完整的程序,感谢啊?[email protected]