void CMyTreeCtrl::OnButtonUp() { if (m_bDragging) { KillTimer( m_nTimerIDScroll ); ASSERT(m_pimagelist != NULL); m_pimagelist->DragLeave(this); m_pimagelist->EndDrag(); delete m_pimagelist; m_pimagelist = NULL; if (m_hitemDrag != m_hitemDrop && !IsChildNodeOf(m_hitemDrop, m_hitemDrag) && GetParentItem(m_hitemDrag) != m_hitemDrop) { TransferItem(m_hitemDrag, m_hitemDrop); DeleteItem(m_hitemDrag); } else MessageBeep(0); m_bDragging = FALSE; ReleaseCapture(); SelectDropTarget(NULL); } }
void CMyTreeCtrl::OnButtonUp() { if (m_bDragging) { ASSERT(m_pimagelist != NULL); m_pimagelist->DragLeave(this); m_pimagelist->EndDrag(); delete m_pimagelist; m_pimagelist = NULL; if (m_hitemDrag != m_hitemDrop && !IsChildNodeOf(m_hitemDrop, m_hitemDrag) && GetParentItem(m_hitemDrag) != m_hitemDrop && GetParentItem(m_hitemDrag) != NULL && GetParentItem(m_hitemDrop) == NULL ) { m_hitemDragParent = GetParentItem(m_hitemDrag); GetParent()->SendMessage(TV_PREDROP,(unsigned int)m_hitemDrag,(long)m_hitemDrop); TransferItem(m_hitemDrag, m_hitemDrop); DeleteItem(m_hitemDrag); GetParent()->PostMessage(TV_POSTDROP,(unsigned int)m_hitemDragParent,NULL); m_bItemChanged = TRUE; } else MessageBeep(0); ReleaseCapture(); m_bDragging = FALSE; SelectDropTarget(NULL); KillTimer(1000); } }