Cursor parpadea

Post Reply
antolin
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Cursor parpadea

Post by antolin »

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:

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.

 
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
Post Reply