Toon posts:

[VB5] muis positie berekenen

Pagina: 1
Acties:

Verwijderd

Topicstarter
geachte tweakers.
ik gebruikte eerst een script met mousepos.x en mousepos.y om de posities van de muis te berekenen. Stel als ik dan wou weten waar ik klikte in een picturebox, deed ik gewoon:

(mousepos.x*15) - picture1.left - form1.left

maar nu wil ik dit in een usercontrol toepassen, maar als ik dus ipv picture1.left usercontrol.left toepas, werkt de handel nog wel, maar als ik dan ipv form1.left form.left of me.left gebruik, loopt de handel niet. wie weet dit te fixen?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

je wilt dus schermcoordinaten omzetten naar control coordinaten... Is daar niet gewoon een functie voor?

(dat * 15 is trouwens wel heel erg slecht, het aantal twips per pixel hoeft namelijk niet per se 15 te zijn als ik me niet vergis)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • MichelVH
  • Registratie: Oktober 2001
  • Laatst online: 01-08 09:33
Volgens mij kun je de eigenschappen van het object waar je UserControl zich op bevindt, opvragen met UserControl.Parent. Dat wordt dan dus iets als:
code:
1
(mousepos.x*15) - usercontrol.left - usercontrol.parent.left

Don't be afraid of the dark, be afraid of what it hides


Verwijderd

Topicstarter
YES!!! eureca, bedankt!

Verwijderd

Op woensdag 26 juni 2002 17:43 schreef BasjeBanaantje het volgende:
maar nu wil ik dit in een usercontrol toepassen, maar als ik dus ipv picture1.left usercontrol.left toepas, werkt de handel nog wel, maar als ik dan ipv form1.left form.left of me.left gebruik, loopt de handel niet. wie weet dit te fixen?
In welke module zit je als je dit gaat berekenen?

En je moet idd Screen.TwipsPerPixelX/Y gebruiken.

Verwijderd

Topicstarter
owja... nog iets... usercontrol.left werkt ook niet. weet iemand daar de fix voor?

Verwijderd

.Left is een ambient property, hiervoor heb je het 'extender' object van het usercontrol nodig.

Dit werkt wel : UserControl.Extender.Left

Alleen wel na het Initialize en Initproperties Event van
het Usercontrol.

Verwijderd

Topicstarter
AAAH! sjit. bedankt voor jullie hulp en ik probeer jullie echt niet uit te zuigen ofzow, maar nu heb ik dus het volgende:

(mousepos.X * Screen.TwipsPerPixelX) - UserControl.Parent.Left - UserControl.Extender.Left

maar nu rekent hij de breedte van de border van de dialog niet mee. weet iemand hoe je dit kan meten of weet iemand een compleet andere aanpak hoe je de positie van een voorwerp op het scherm kan meten?

alvast bedankt.

Verwijderd

Wat bedoel je precies met de border van
de dialog?

Ik vermoed dat je dit zoekt : Usercontrol.Parent.ScaleLeft

Verwijderd

Topicstarter
Ik heb die nu genomen, maar scaleleft = 0, das denk ik niet de goeie...

Verwijderd

Misschien kun je ff wat meer uitleg geven.

Je hebt een form met daarop een usercontrol en je wilt
weten als je op het usercontrol klikt wat je muispositie
is ten opzichte van de linker bovenhoek van je form?

  • MichelVH
  • Registratie: Oktober 2001
  • Laatst online: 01-08 09:33
BorderSize = UserControl.Parent.Width - UserControl.Parent.ScaleWidth :?

Don't be afraid of the dark, be afraid of what it hides


Verwijderd

Topicstarter
jah, dat is het dan, maar dan niet de linkerbovenhoek van de form, maar van de usercontrol.

Verwijderd

Op woensdag 26 juni 2002 20:41 schreef BasjeBanaantje het volgende:
jah, dat is het dan, maar dan niet de linkerbovenhoek van de form, maar van de usercontrol.
En dat wil je weten in je form of binnen je usercontrol?

Verwijderd

Topicstarter
In de usercontrol. Hey. Er staat trouwens een foutje in je sig. PEXTOR -> PLEXTOR

Verwijderd

k, op een volledig leeg usercontrol, dus
zonder textbox, button enz.
Gebruik je het mousedown event.

UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) event.

Hierin is je horizontale positie binne het control X (in twips, pixels, mm, whatever, wat je maar ingesteld hebt,.)

Wil je de horizontale positie ten opzichte van het form
waar het usercontrol op zit is het:

X + Usercontrol.Extender.Left

Plak je nu controls op je usercontrol moet je in ieder
van het mousedown event van die controls weer een berekening
maken ten opzichte van je usercontrol

Thanx for the warning ....fixed ;)

Verwijderd

Topicstarter
maar ik willem niet tegenover het form waar die op zit, maar tegenover het scherm :(

Verwijderd

Op woensdag 26 juni 2002 20:41 schreef BasjeBanaantje het volgende:
jah, dat is het dan, maar dan niet de linkerbovenhoek van de form, maar van de usercontrol.
Uit dit begreep ik wat anders, andere aanpak dan.
Wel eens met API's gewerkt?

Verwijderd

Topicstarter
Sjit he wat ben ik toch DOM!!!!! AAAAH! ik zit al heel de tijd te zoeken en te doen, is het gewoon X. Ik ben echt geschift....

Verwijderd

[b]Op woensdag 26 juni 2002 20:57 schreef MurphysLaw Hierin is je horizontale positie binne het control X :+ (in twips, pixels, mm, whatever, wat je maar ingesteld hebt,.)
Lezen is ook een vak |:( , ben je der uit ?
Pagina: 1