Tengo un problemilla con un cursor.
En un programilla que estoy desarrollando, en algunos dialogos quiero que cuando pinche sobre cierta zona superior el cursor cambie a uno propio. Lo hago llamando a ::bMMoved y funciona. Pero parpadea. Alterna de flecha a mi cursor una y otra vez y no hay manera de que realice un recorrido limpio. Alguna solución
Esta es mi función:
- Code: Select all Expand view
FUNCTION MovWin(oDW,aCur,nLimit,nVLmit)
LOCAL aXY := GetCursorPos()
LOCAL aPun := GetWndRect(oDW:hWnd)
LOCAL aBMov := oDW:bMMoved
DEFAULT nLimit := oDW:nHeight, ;
nVLmit := oDW:nWidth
aXY[1] -= aPun[1]
aXY[2] -= aPun[2]
IF aXY[1] > nLimit .OR. aXY[2] > nVLmit
RETURN NIL
ENDIF
*
oDW:bMMoved := { || SetCursor( aCur[2] ) }
DO WHILE GetKeyState( VK_LBUTTON )
aPun := GetCursorPos()
MoveWindow( oDW:hWnd, aPun[1]-aXY[1], aPun[2]-aXY[2],,, .F. )
SysRefresh()
ENDDO
oDW:bMMoved := aBMov
RETURN .T.