Manejo del Mouse

Post Reply
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

Manejo del Mouse

Post by infosys »

Estimados amigos

Estoy intentando hacer una navegacion de un grafico estadisticos, pero necesito capturar las posicion del mouse, pero a la vez que desplazo el mouse sobre la ventana debe ir mostrando una especie de cursor en cruz, cuyo punto de interseccion entre ambas rectas de la cruz, coincida con la posición del mouse. Cuando se desplaza el mouse debe ir actualizandose la cruz para que siempre coincida con la posicion del mouse, los extremos de ambas rectas de la cruz deben llegar hasta los costados de la ventana. Espero que puedan entender la idea, pues no soy muy claro en exponerla.
Se que habia un ejemplo en versiones antiguas de Fivewin, pero no logre dar con ellas.

Agradeceria cualquier ejemplo o comentario al respecto

Saludos
Miguel
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: Manejo del Mouse

Post by Daniel Garcia-Gil »

Saludos Miguel...
Espero este sea lo que buscas....

Code: Select all

#include "FiveWin.ch"
#include "Image.ch"

//----------------------------------------------------------------------------//

function Main()

   LOCAL oDlg, oImage, oSayX, oSayY, oCursor
   local nXPos := 0
   local nYPos := 0

   define cursor oCursor CROSS

   DEFINE DIALOG oDlg FROM 0, 0 TO 20, 60 ;
      TITLE FWDESCRIPTION + " JPG,JIF,GIF,BMP,DIB,RLE,TGA,PCX support!"

   @ 0, 0 IMAGE oImage SIZE 150, 150 OF oDlg SCROLL ADJUST cursor oCursor

   oImage:bMMoved := {| nRow, nCol | oSayX:SetText("X Pos:" + str( nRow ), oSayx:refresh() ),;
    oSayY:SetText("Y Pos:" + str( nCol ), oSayy:refresh() ) } 
   oImage:Progress( .f. )

   @ 1, 28 BUTTON "Select Image" SIZE 50,10 OF oDlg ACTION GetImage( oImage )
   
   @ 2, 28 say oSayX prompt "X Pos:" + str( nXPos ) of oDlg update
   @ 3, 28 say oSayY prompt "Y Pos:" + str( nYPos ) of oDlg update

   @ 6, 28 BUTTON "Exit" SIZE 50, 10 OF oDlg ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTER

return nil

//----------------------------------------------------------------------------//

function GetImage( oImage )

   local gcFile := cGetFile( "Bitmap (*.bmp)| *.bmp|" +         ;
                             "DIB   (*.dib)| *.dib|" +          ;
                             "PCX   (*.pcx)| *.pcx|"  +         ;
                             "JPEG  (*.jpg)| *.jpg|" +          ;
                             "GIF   (*.gif)| *.gif|"  +         ;
                             "TARGA (*.tga)| *.tga|" +          ;
                             "RLE   (*.rle)| *.rle|" +          ;
                             "All Files (*.*)| *.*"             ;
                            ,"Please select a image file", 4 )

   if ! Empty( gcFile ) .and. File( gcFile )
      oImage:LoadBmp( gcFile )
   endif

return nil
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

Re: Manejo del Mouse

Post by infosys »

Gracias Daniel, me sirve de mucho el ejemplo que muestras, pero respecto del cursor lo que necesito es que sean dos lineas rectas que siempre esten tocando los extremos de la ventana, y que cuando desplace el mouse, sobre esa ventana la intersección de ambas rectas esten siempre en la posicion del puntero del mouse.

Saludos
Miguel
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Manejo del Mouse

Post by Antonio Linares »

Miguel,

Prueba esto:

Code: Select all

#include "FiveWin.ch"  

function Main()        
 
   local oDlg, nRow := -1, nCol := -1       
 
   DEFINE DIALOG oDlg TITLE "Test"        
 
   oDlg:bMMoved = { | nMRow, nMCol | nRow := nMRow, nCol := nMCol, oDlg:Refresh() }
 
   ACTIVATE DIALOG oDlg CENTERED ;
      ON PAINT ( MoveTo( hDC, nCol, 0 ), LineTo( hDC, nCol, oDlg:nHeight ),;
                 MoveTo( hDC, 0, nRow ), LineTo( hDC, oDlg:nWidth, nRow ) )
 
return nil 
 
Image
regards, saludos

Antonio Linares
www.fivetechsoft.com
infosys
Posts: 57
Joined: Tue Jan 31, 2006 1:32 pm

Re: Manejo del Mouse

Post by infosys »

Antonio, muchisimas gracias, es lo que realmente necesitaba.

Saludos
Miguel
Post Reply