Example #1
0
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);
	}
}
Example #2
0
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);
	}
}