SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftMask/OCX 7.0 - Masked Edit Control
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftPrintPreview/DLL 2.0 - Print Preview Control (discontinued)
SftTree/DLL 7.5 - Tree Control
SftBox/OCX 5.0 - Combo Box Control
SftButton/OCX 3.0 - Button Control
SftDirectory 3.5 - File/Folder Control (discontinued)
SftMask/OCX 7.0 - Masked Edit Control
SftOptions 1.0 - Registry/INI Control (discontinued)
SftPrintPreview/OCX 1.0 - Print Preview Control (discontinued)
SftTabs/OCX 6.5 - Tab Control (VB6 only)
SftTree/OCX 7.5 - Tree Control
SftTabs/NET 6.0 - Tab Control (discontinued)
SftTree/NET 2.0 - Tree Control
Returns drag & drop operation information in a SFTTREE_DRAGINFO structure.
C
LPSFTTREE_DRAGINFO WINAPI SftTree_GetDragInfo(HWND hwndCtl); LPSFTTREE_DRAGINFO WINAPI SftTreeSplit_GetDragInfo(HWND hwndCtl);
C++
LPSFTTREE_DRAGINFO CSftTree::GetDragInfo() const; LPSFTTREE_DRAGINFO CSftTreeSplit::GetDragInfo() const;
hwndCtl
The window handle of the tree control.
The return value is a pointer to a SFTTREE_DRAGINFO structure.
The GetDragInfo function returns drag & drop operation information in a SFTTREE_DRAGINFO structure.
A tree control must be defined using the SFTTREESTYLE_DRAGDROP window style to support drag & drop.
The SFTTREE_DRAGINFO structure returned is only valid if the calling application is currently processing a SFTTREEN_BEGINDRAG, SFTTREEN_DRAGGING, SFTTREEN_ENDDRAG or SFTTREEN_CANCELDRAG notification. When processing multiple notifications, the SFTTREE_DRAGINFO structure has to be retrieved using GetDragInfo every time. The address of the retrieved SFTTREE_DRAGINFO structure cannot be considered valid after processing one notification.
Some fields in the structure may be modified if the application is currently processing a SFTTREEN_BEGINDRAG or SFTTREEN_DRAGGING notification.
/**********************************************************************/
/*                      Left Tree Control Handling                    */
/**********************************************************************/
static void DraggingLeft()
{
    /* Drag & drop in progress, which was started on the left side tree */
    LPSFTTREE_DRAGINFO lpInfo;
    lpInfo = SftTree_GetDragInfo(m_hwndLeftTree);
    if (lpInfo->hwnd != m_hwndLeftTree) { // The target is another window
        // clear old drop target
        if (m_hwndLastTarget) {
            SftTree_SetDropHighlight(m_hwndLastTarget, -1, FALSE);
            SftTree_StopAutoExpandTimer(m_hwndLastTarget);
void CSampleDlg::OnEndDragLeft()
{
    /* The user dropped something */
    LPSFTTREE_DRAGINFO lpInfo;
    int index;
    CString str, text;
    lpInfo = m_LeftTree.GetDragInfo();
    if (lpInfo->hwnd != m_LeftTree.m_hWnd) { // The target is another window
        // In this example the "other" control could be the right tree control
        if (lpInfo->hwnd == m_RightTree.m_hWnd) { // target is left tree
            index = m_RightTree.GetDropHighlight();See Also C/C++ API | Categories | Notifications
