• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

TS91

Como mexer objecto com o rato

9 mensagens neste tópico

Boas,

eu queria que quando mexo o rato, mexesse tambem a imagem que tenho e que o rato tivesse a mesma posição que  a imagem.

P.S-sem precisar de clicar em nenhum butao do rato

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom para isso tens que usar uma função API, faz o seguinte:

-Cria uma imagem pequena um quadrado ou assim e com o nome "Image1"

-Cria um timer com o nome "Timer1"

Agora copia isto para o teu código:

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

Private Type POINTAPI
        X As Long
        Y As Long
End Type
Dim a As POINTAPI
Dim b As Long
Dim c As Long

Private Sub Form_Load()
Image1.Height = 1035
Image1.Width = 840
Timer1.Interval = 1
End Sub


Private Sub Timer1_Timer()
   mousepos
End Sub

Private Sub mousepos()
ret = GetCursorPos(a)
b = a.X
c = a.Y
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.Left = X
Image1.Top = Y
If Image1.Left <= 0 Then
     Image1.Left = 0
End If
If Image1.Top <= 0 Then
     Image1.Top = 0
End If
If Image1.Left >= 17300 Then
     Image1.Left = 17280
End If
If Image1.Top >= 11168 Then
     Image1.Top = 11160
End If
End Sub

Agora basta manipulares o código a teu favor, alguma duvida apita.

Cumps ^^

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao precisa de api...

basta usar o evento "onmousemove"...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao precisa de api...

basta usar o evento "onmousemove"...

... e definir as coordenadas da imagem iguais às coordenadas do rato.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao precisa de api...

basta usar o evento "onmousemove"...

Sim tens razão mas com o meu código e englobamento da função API ele obtem as posições do ponteiro do rato no ecrã inteiro, ou seja, podes continuar a mexer com o rato fora da tua form ao correr o programa que ele dá te sempre as coordenadas, agora faz isso com o mousemove que so obtens coordenadas dentro da Form  :nono:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha que não sei. Fiz algo parecido em VB.Net e, para meu desconsolo :) ele saía fora da form.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah eu respondi à dúvida foi com código para VB 6.0, não sei se são necessárias modificações para o VB.net.

Scorch não sou grande fã do VB.net nem sei trabalhar com ele, mas duvido que consigas fazer o que essa função API faz só com código do Programa, mas se conseguiste e podesses dar o código para ver até que dava jeito  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No evento onmousemove:

Me.Location = New System.Drawing.Point(MousePosition.X, MousePosition.Y)

Experimenta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora