Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [VB6] mouse e puntatore

    ciao!
    leggendo sul forum ho trovato questo codice dato da MITALY
    codice:
    Private Type POINTAPI
    x As Long
    y As Long
    End Type
    
    Private Const MOUSEEVENTF_ABSOLUTE = &H8000 ' absolute move
    Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
    Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
    Private Const MOUSEEVENTF_MOVE = &H1 ' mouse move
    Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
    Private Const MOUSEEVENTF_MIDDLEUP = &H40
    Private Const MOUSEEVENTF_RIGHTDOWN = &H8
    Private Const MOUSEEVENTF_RIGHTUP = &H10
    
    Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Private Declare Function GetMessageExtraInfo Lib "user32" () As Long
    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Const SM_CXSCREEN = 0 'X Size of screen
    Const SM_CYSCREEN = 1 'Y Size of Screen
    
    Private Sub ScreenToAbsolute(lpPoint As POINTAPI)
    lpPoint.x = lpPoint.x * (&HFFFF& / GetSystemMetrics(SM_CXSCREEN))
    lpPoint.y = lpPoint.y * (&HFFFF& / GetSystemMetrics(SM_CYSCREEN))
    End Sub
    
    Private Sub MoveCursor(p As POINTAPI)
    'p.X and p.Y in absolute coordinates
    'Put the mouse on the point
    
    mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, p.x, p.y, 0, GetMessageExtraInfo()
    End Sub
    e
    codice:
    Dim p As POINTAPI 'struttura che contiene le coordinate a cui spostare il puntatore
    p.x=100 'coordinata X
    p.y=200 'coordinata Y
    ScreenToAbsolute p 'converte il punto da coordinate dello schermo a coordinate "assolute" (espresse in 65536esimi di lunghezza/altezza dello schermo)
    MoveCursor p 'muove
    fino a qui tutto bene, a me servirebbe una cosa simile però che sul asse X del puntatore (p.x) fosse comandato dal mouse(cioè l'asse X lo devo comandare con il mouse e Y con un valore fisso come nel codice (p.y= 200))...scusate se la domanda può sembrare da principianti ma sono nuovo della programmazione

  2. #2
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Scusami, ma perchè non spieghi l'esigenza che hai, anzichè chiedere di adattarti un codice senza sapere nemmeno cosa devi fare?

    Boolean

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Boolean
    Scusami, ma perchè non spieghi l'esigenza che hai, anzichè chiedere di adattarti un codice senza sapere nemmeno cosa devi fare?

    Boolean
    Boolean, ma che domande sono? VVoVe:
    Sarà coperto da qualche segreto!

  4. #4
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Originariamente inviato da gibra
    Boolean, ma che domande sono? VVoVe:
    Sarà coperto da qualche segreto!
    dannati segreti industriali!

    Boolean

  5. #5
    l'esigenza mia è quella di dire al mous dove andare dal codice di vb6 sul asse Y e dal mouse sul asse X...
    se volete più detagli in una picturebox ho un grafico e il puntatore deve sequire il grafico...
    mi sembra fattibile in quanto ho visto MITALY fare una cosa del genere sul codice sopracitato e volevo sapere quali sono le variabili che contegono x,y del mouse,puntatore e sistema.
    spero di essere stato più chiaro

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non puoi farlo.
    Quel codice serve per far muovere il mouse, ma se lo muovi tu finisce tutto.
    In pratica: il mouse o lo muove il codice, o lo muovi tu.
    Non puoi fare entrambe le cose.

  7. #7
    Originariamente inviato da bèngàla
    l'esigenza mia è quella di dire al mous dove andare dal codice di vb6 sul asse Y e dal mouse sul asse X...
    se volete più detagli in una picturebox ho un grafico e il puntatore deve sequire il grafico...
    mi sembra fattibile in quanto ho visto MITALY fare una cosa del genere sul codice sopracitato e volevo sapere quali sono le variabili che contegono x,y del mouse,puntatore e sistema.
    spero di essere stato più chiaro
    Guarda un po' se funziona cosi':
    - Form1, aggiungi una Picture1;
    - per evitare problemi di conversione coordinate imposta la proprieta' (sia del form che della pic) ScaleMode a 3 = pixel
    codice:
    Option Explicit
    Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
    Private Declare Function GetCursorPos Lib "user32" (pos As POINTAPI) As Long
    
    Private Type POINTAPI
        X As Long
        Y As Long
    End Type
    
    Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
       Dim pos As POINTAPI
       GetCursorPos pos
       pos.Y = pos.Y - Y + 50        'pixel dal bordo superiore
       SetCursorPos pos.X, pos.Y
    End Sub
    ...cosi' facendo, quando il puntatore del mouse passa sulla Picture1, la coordinata Y rimane fissa (qui, come esempio, ho imposto 50 pixel dal bordo superiore).

    A me sembra funzionare...... vedi un po' SE e' quello che intendevi...
    IceCube_HT (VB6 fan Club)

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    icecube_HT,
    il tuo codice fa più o meno la stessa cosa di quello postato in precedenza, che usa la mouse_event, ma non è quello che intende bèngàla .

    Lui vuole che lo spostamento del mouse (che è manuale) sia abilitato solo sull'ascissa (X), mentre l'ordinata (Y) deve restare bloccata.
    Insomma, un po' come l'effetto calamita in certi software.

    Questa cosa richiede la tecnica del subclassing e non è così semplice se uno non ne ha le conoscenze, e soprattutto non sa padroneggiarla. Come sai bene il subclassing non è una passeggiata... In VB6 poi!!!

    E non mi pare proprio che bèngàla , per sua stessa ammissione , abbia delle conoscenze di programmazione così avanzate da potersi cimentarsi a questi livelli.

    Ciao

  9. #9
    cercavo proprio quelo che ha scrito icecube_HT grazzie mile
    gibra non ti sbagli sono piutosto scarsso XD

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da bèngàla
    cercavo proprio quelo che ha scrito icecube_HT grazzie mile
    Allora ti sei spiegato malissimo.
    Oppure sono io che dormivo...

    Originariamente inviato da bèngàla
    gibra non ti sbagli sono piutosto scarsso XD
    Mica è una colpa. Ci siamo passati tutti.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.