Avatar billede jivefive Nybegynder
05. april 2001 - 15:35 Der er 1 kommentar og
1 løsning

Vindue som følger musen

Hej alle sammen

Jeg kunne godt tænke mig, at lave et lille vindue, der er placeret nede under muse cursoren og som flytter med rundt på skærmen når man flytter musen.

Det lyder jo enkelt nok og jeg tænkte straks getCursorPos() og så er den hjemme men nej.

Min rutine ser ud som følger

1 form
1 timer Timer1 med interval 100

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

Private Type POINTAPI
x As Long
y As Long
End Type

Sub Timer1_Timer()
Dim pt32 As POINTAPI
Dim ptx As Long
Dim pty As Long

Call GetCursorPos(pt32)
ptx = pt32.x
pty = pt32.y

Call Me.Move(Left:=ptx, Top:=pty)
End Sub
------------------------------------------

Det virker også fint, forstået på den måde at formen flytter sig. Men den bevæger sig absolut ikke synkront med musens bevægelser og det virker lidt som om getCursorPos() og me.move regner i to forskellige måleenheder.
Jeg har forsøgt at sætte formens scalemode til flere forskellige måleenheder. Men det virker heller ikke.

Er der nogen gode idéer??

Hilsen
JiveFive
Avatar billede jennemaan Nybegynder
05. april 2001 - 15:45 #1
Sub Timer1_Timer()
Dim pt32 As POINTAPI
Dim ptx As Long
Dim pty As Long

Call GetCursorPos(pt32)
ptx = pt32.x * Screen.TwipsPerPixelX + 10
pty = pt32.y * Screen.TwipsPerPixelX + 10
Call Me.Move(Left:=ptx, Top:=pty)
End Sub

/Jennemaan
Avatar billede jivefive Nybegynder
05. april 2001 - 16:08 #2
Hej jennemaan

<Grin> jeg fandt også selv lige ud af det. Mand hvor har man dog lov til at tåge engang imellem. Du har for øvrigt lavet en lille tastefejl i linien
pty = pt32.y * Screen.TwipsPerPixelX + 10

hvor jeg går ud fra at, du mente TwipsPerPixelY.
Jeg kan for øvrigt oplyse at + 10 er en rigtig skidt ide, da cursoren i så fald kommer til at svæve lige i kanten af menulinien og hvis man kommer til at klikke og derved maksimere vinduet, så får man en sur meddelelse om at en maksimeret form ikke kan flyttes ;o)

Men alligevel tusind tak for indsatsen og jeg kvitter med lidt point.

Hilsen
JiveFive
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester