大家好!想问一下大家:我做了一个树状列表,现在想做一个拖动的效果,现在几乎都能够完成。但是当我拖动树状列表中某个项目时,我想让鼠标的样式变成为鼠标下面带一个+号的形式(就像在资源管理器中拖放文件一样),不知道怎样设置。听说是可以利用MFC的函数,设定默认的参数。我尝试在树状视图(我是在单文档里面划分了两个试图)的OnBegindrag()里面添加了一句话:SetCursor(AfxGetApp()->LoadCursor(IDC_SIZEALL));但是都没有反应。不知道为什么。听说可以使用COleDropSource::GiveFeedback,但是不知道怎样设置里面的参数呢?想请教一下各位,谢谢!

解决方案 »

  1.   

    添加一个响应WM_SETCURSOR的事件,然后在该事件中指定鼠标在树状列表时的样式
      

  2.   

    在类中增加一个变量成员,用来判断是否正在拖拽
    在OnBeginDrag的映射函数里设置该变量为TRUE
    接着在OnSetCursor映射函数里根据变量值设置鼠标指针
    (记得设置后要返回TRUE,否则会被系统处理为默认鼠标样式)
    在OnEndDrag映射函数里把变量设置为FALSE
      

  3.   

    ::SetCursor(LoadCursor(NULL,IDC_WAIT));//IDC_WAIT可以更换为你想要的