Critobal, Manuel, En eritems.prg function ElementActions() he definido el bMMoved de los items para que llamen a SetReticule() convirtiendo las coordenadas recibidas en el item a coordenadas de su ventana padre (un Area). En principio lo hace bien pero se ve un parpadeo en la ultima posición pintada...
Cristobal, En realidad no necesitamos guardar los bitmaps de los rulers puesto que el pintado se hace encima de la propia ventana. Acabo de subir unos cambios para el pintado horizontal. La solución sería que todos los items en su bMMoved llamen a la función SetReticule() A ver si damos con el sitio...
Manuel, .../... El problema que tenemos ahora es que al pasar por encima de un control (item) no se pinta. A ver que se nos ocurre... Antonio, Manuel, debería ser algo asi, no? Pero hay algo que se me escapa (o la idea no es la correcta) Tampoco he comprobado cómo almacena los items ( cuando uno es...
He convertido las variables oRulerBmp1 y oRulerBmp2 en arrays para asignar un control distinto en cada area function DeclarePublics( cDefFile ).../... PUBLIC oRulerBmp1 := {} PUBLIC oRulerBmp2 := {} PUBLIC nRuler := 20 PUBLIC nRulerTop := 37.../... function Fi...
La solución funciona muy bien Pero si hay alguna "regla" que no aparece entera en la pantalla, al desplazarte hacia abajo se queda la marca y ya no se quita Habría, o bien, hacer un refresh de ese bmp cuando aparece totalmente o no dibujar si las "reglas" no son totalmente visibl...
Manuel, Voy a probarlo, gracias! :-) Hay que implementar el evento de abandono de superficie para eliminar ese último pintado: #define TME_LEAVE 2 #define WM_MOUSELEAVE 675 METHOD MouseMove( nRow, nCol, nKeyFlags ) CLASS ... TrackMouseEvent( ::hWnd, TME_LEAVE ) ... METHOD HandleEvent( nMsg, nWParam,...
Con este código funciona el pintado pero el problema surge cuando cambiamos el raton de area que deja un rastro de donde se dibujo la linea ... ... drawRulerLines( oApp:aRulerBmp1[nArea], nRulerTop, nRuler, nColPos )// AEVAL( aRuler, {|x,y| IIF( x[1] <>...