拖动树状视图项

【勇芳软件工作室】汉化HomePreviousNext

当父窗口收到WM_MOUSEMOVE消息时,通过调用ImageList_DragMove函数拖动树视图项,如下例所示。该示例还在拖动操作期间执行命中测试,以确定是否将树视图中的其他项目突出显示为拖放操作的目标。

// Main_OnMouseMove - 拖动树视图控件中的项目,

//突出显示作为目标的项目。

// hwndParent - 父窗口的句柄

// hwndTV - 树视图控件的句柄

// xCur和yCur - 鼠标光标的x坐标和y坐标

void Main_OnMouseMove(HWND hwndParent,HWND hwndTV,LONG xCur,LONG yCur)

{

HTREEITEM htiTarget; //目标项目的句柄

TV_HITTESTINFO tvht; //命中测试信息

if(g_fDragging){

//将项目拖动到鼠标光标的当前位置。

ImageList_DragMove(xCur, yCur);

//找出光标是否在项目上。如果是,突出显示

//该项目作为放置目标。

tvht.pt.x = xCur;

tvht.pt.y = yCur;

if ((htiTarget = TreeView_HitTest(hwndTV, &tvht)) != NULL) {

TreeView_SelectDropTarget(hwndTV, htiTarget);

}

}

return;

}