Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [VB6] spostare mouse al centro di una label

    Private Type POINTAPI
    X As Long
    Y As Long
    End Type

    Private Declare Function GetCursorPos _
    Lib "user32" _
    (lppoint As POINTAPI) As Long

    Private Declare Function SetCursorPos _
    Lib "user32" _
    (ByVal X As Long, _
    ByVal Y As Long) As Long

    Private Sub List1_Click()
    Dim pp As POINTAPI

    GetCursorPos pp
    pp.X = pp.X + 10
    SetCursorPos pp.X, pp.Y
    DoEvents
    pp.X = pp.X - 10
    SetCursorPos pp.X, pp.Y
    End Sub

    Ho trovato questo codice, e riesco a spostare il muose, ma il problema è trovare la posizione della label dentro il quale lo voglio spostare. Ovviamente quando premo un bottone.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481

    Re: [VB6] spostare mouse al centro di una label

    Originariamente inviato da morocarlo
    ... ma il problema è trovare la posizione della label dentro il quale lo voglio spostare.
    Cioè?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    io uso SetCursorPos e gli do le coordinate, e il muose si sposta, ma non riesco a capire che coordinate ha... dovrebbero essere i pixel dello schermo.. ma come faccio a trovarle?

    In poche parole vorrei spostare il mouse al centro di una label quando premo un pulsante

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Il controllo Label è un controllo 'grafico' ovvero viene disegnato sul form, per cui come tutti i controlli grafici (Shape, Line, ...) non è una 'vera' finestra, il che significa che non ha un handle (leggi proprietà hWwn) che invece è richiesto dalle funzioni di Windows.

    Morale:
    Non avendo l'handle del Label non puoi riferirti a lui direttamente, ma devi fare un'extra lavoro in più per ricavare il rettangolo (struttura RECT) all'interno del form che contiene il controllo.

    Domanda:
    non riesco ad immaginare l'utilità di spostare il puntatore del mouse su un Label...
    Se fosse un pulsante, un controllo su cui fare Click, capieri.
    ma su un Label....
    Spieghi l'utilità?


  5. #5
    ho un samsung e c'è un programmino che tramite bluetooth permette di spostare il mouse.
    Volevo quindi spostare il mouse all'interno di una label e in base alla posizione del mouse all'interno della label si muoveva un robot che ho creato.

    Ho giù fatto il programmino che muovendo il mouse in alto, basso, sinistra o destra della label si muove il robot. Ma volevo fare il figo e farlo anche con il samsung :P
    Funziona tutto, solo che ogni volta devo spostare il mouse al centro e poi premere i tasti per muoverlo.
    Nulla di vitale, ma era per rendere la cosa un po più carina.

    Potrei anche mettere una picture box o altro... a me non cambia niente, basta che ci sia l'evento mouseMove

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Il MouseMove c'è l'ha anche il Label, ma è l'handle che gli manca.

    Con un PictureBox risolvi il tuo problema perchè ha handle (hWnd) che puoi usare nelle funzioni API.


  7. #7
    quindi metto una picturebox al posto della lable... ma hwnd non la ho mai usata... provo a vedere in giro se trovo qualcosa.

    Poi devo usare il metodo SetCursorPos e gli do le coordinate della picture vero?

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non serve che vedi in giro .
    Questa proprietà è esposta da quasi tutti i controlli (ad esclusione di quelli grafici).

    L'hWnd è una proprietà (a sola lettura) che fornisce un'identificatore univoco di tutte le finestre presenti sullo schermo.
    - h sta per Handle
    - Wnd sta per Window (finestra)


    Per posizionare il cursore dove vuoi tu, devi nell'ordine:

    1) usare la funzione GetWindowRect() per ricavare il rettangolo del tuo PictureBox (RECT)
    http://allapi.mentalis.org/apilist/GetWindowRect.shtml

    2) Usare la funzione SetCursorPos() per posizionare il cursore all'interno di questo rettangolo
    http://allapi.mentalis.org/apilist/SetCursorPos.shtml

    Entrambe lavorano con le coordinate dello schermo , quindi è abbastanza semplice ottenere quello che vuoi, dato che non è necessaria alcuna conversione da screen a client.



  9. #9
    ok, grazie mille... domani guardo meglio e provo a sistemare le cose...

    edit: mi da errore quando inserisco la dichiarazione...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da morocarlo
    edit: mi da errore quando inserisco la dichiarazione...
    Ma se non dici quale errore ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.