要编一个程序,实现功能:叶的图标随着某一状态值的变化而动态显示不同的图标。准备在窗口的WM_TIMER消息中查询状态并改变图标。树与叶已创建成功,图像列表也有了。但不知道怎么改变一个叶的图标。

解决方案 »

  1.   

    TVM_SETITEM消息。typedef struct tagTVITEM{
        UINT      mask;
        HTREEITEM hItem;
        UINT      state;
        UINT      stateMask;
        LPTSTR    pszText;
        int       cchTextMax;
        int       iImage;
        int       iSelectedImage;
        int       cChildren;
        LPARAM    lParam;
    } TVITEM, FAR *LPTVITEM;
      

  2.   

    void SetItemImage(HTREEITEM hItem, int nImage)
    {
    TVITEM item;
    item.hItem=hItem;
    item.mask=TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
    item.iImage = item.iSelectedImage = nImage;
    TreeView_SetItem(m_hTreeCtrl,&item);
    }
      

  3.   

    BOOL SetItemImage(
       HTREEITEM hItem,
       int nImage,
       int nSelectedImage 
    );
      

  4.   

    TVINSERTSTRUCT tvi = {0};
    tvi.item.iImage = ....
    tvi.item.iSelectedImage = tvi.item.iImage;
    ...
    InsertItem
      

  5.   

    TVITEM tvItem;
    tvItem.mask = TVIF_IMAGE;
    tvItem.hItem = hItem;
    TreeView_GetItem(&tvItem);tvItem.iImage = nNewImage;
    TreeView_SetItem(&tvItem);