Cursor parpadea
Posted: Thu May 02, 2024 6:01 pm
Buenas a todos. Hacía mucho tiempo que no entraba en el foro.
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:
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
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.