if(3 != m_tree.GetItemState(cur, TVIS_STATEIMAGEMASK) >> 12) >>12是什么意思,不加上的话返回值毫无规律可言

解决方案 »

  1.   

    右移12位我知道。GetItemState这个函数是怎么用的。为什么要右移12位。MSDN上查不到
      

  2.   

    MSDN上有的CTreeCtrl::GetItemState
    UINT GetItemState( HTREEITEM hItem, UINT nStateMask ) const;Return ValueA UINT specifying the item’s state. For information on possible values, see CTreeCtrl::GetItem.ParametershItemHandle of the item whose state is to be retrieved.nStateMaskMask indicating which states are to be retrieved. For more information on possible values for nStateMask, see the discussion of the state and stateMask members of theTVITEM structure in the Platform SDK.ResReturns the state of the item specified by hItem.Example// The pointer to my tree control.
    extern CTreeCtrl* pmyTreeCtrl;// Show all of the visible items in bold.
    HTREEITEM hItem = pmyTreeCtrl->GetFirstVisibleItem();while (hItem != NULL)
    {
       pmyTreeCtrl->SetItemState(hItem, TVIS_BOLD, TVIS_BOLD);
       ASSERT(pmyTreeCtrl->GetItemState(hItem, TVIS_BOLD) == TVIS_BOLD);
       hItem = pmyTreeCtrl->GetNextVisibleItem(hItem);
    }