Les 4 De Muis (deel 1)
description
Transcript of Les 4 De Muis (deel 1)
Les 4De Muis(deel 1)
Programmerenmet
Visual Basic
Karl Moens
Program
meren m
et Visula B
asic – Les 4
Overzicht
• Oplossing van de vorige oefeningen
• Geschiedenis• Aansturen van de muis• Oefening
Program
meren m
et Visula B
asic – Les 4
Oplossing van de oefeningenZie programma Les3F
Program
meren m
et Visula B
asic – Les 4
De Muis
De Muis werd uitgevonden door Douglas Engelbart in de jaren 60 en voor het eerst gedemonstreerd in 1968 in Californië (zie http://sloan.stanford.edu/MouseSite/Archive.html en
http://www-2.cs.cmu.edu
/~amulet/ papers/uihistory.tr.html ) en was bedoeld als vervanging van de reeds sedert 1954 in gebruik zijnde lightpen.
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
De muis wordt beheerd door het Windows-systeem.
Visual Basic heeft een aantal mogelijkheden om deze systeem-functies te gebruiken in een programma
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
De belangrijkste parameters van de muis kunnen worden uitgelezen:
• positie (x en y)• beweging van de muis (van en
naar objecten)• toestand van de muisknoppen• indrukken en loslaten van de
muisknoppen(zie programma Les4A.vbp)
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
Algemene regel:Het object waarboven de muispointer
zich bevindt zal de "mouse-events" beheren.
Indien er geen specifiek object onder de muis is, zal het formulier de "mouse-events" afhandelen.
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
De positie van de muis:• De positie van de muis boven
objecten of boven het formulier wordt automatisch door VB beheerd: het juiste object/formulier krijgt de gebeurtenissen te verwerken.
• De positie van de muis uitgedrukt in coordinaten (X en Y) worden continu bijgehouden in de MouseMove-event.
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
Private Sub Form_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
x is de x-coordinaat (horizontaal)y is de y-coordinaat (verticaal)De positie (0,0) is de linkerbovenhoek van
het formulier (zonder de titelbalk) of objectDe standaard gebruikte maateenheid is de twip(1 inch = 1440 twips)
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
Andere maateenheden:• cm, mm en inch• points (1 inch = 72 points)
• pixels (afhankelijk van de computer)
• character (een rechthoek van 120 twips breed en 240 twips hoog)
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
Welke eenheden worden gebruikt hangt af van de ScaleMode-eigenschap van het formulier
Twips 1
Point 2
Pixel 3
Character 4
Inch 5
mm 6
cm 7
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
De MouseMove-event wordt uitgelokt telkens wanneer de X en/of Y coordinaat van de muis wijzigt.
Op dat moment kan ook de toestand van de muisknoppen worden gecontroleerd via de waarde Button:
Links 1
Rechts
2
Midden
4
Indien meerdere knoppen zijn ingedrukt
worden de waarden opgeteld.
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
Tegelijk worden ook de Shift-toetsen uitgelezen in de Shift-waarde:
Ook hier zijn combinaties mogelijk door de waarden op te tellen!
Shift 1
Ctrl 2
Alt 4
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
Ook het indrukken of loslaten van een muisknop is een gebeurtenis:
Private Sub Form_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)
Private Sub Form_MouseUp(button As Integer, shift As Integer, x As Single, y As Single)
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
Opgelet!De waarde van button is steeds maar
de waarde van één muisknop (geen combinaties mogelijk zoals bij MouseMove).
Deze events registreren iedere beweging van iedere muisknop apart!
vb: een dubbelklik met de linkermuisknop is dus MouseDown; MouseUp; MouseDown; MouseUp met telkens button = 1
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
Sommige objecten kennen ook een Click of DblClick-gebeurtenis. Deze gebeurtenissen kunnen echter geen onderscheid maken tussen linker/midden/rechter-muisknop.
Indien er voor een object zowel een Click als een DblClick-event is gedefiniëerd, wordt de DBLClick nooit uitgevoerd omdat de Click-event voorrang krijgt.
Program
meren m
et Visula B
asic – Les 4
Aansturen van de muis
De volgorde van de events is verschillend voor verschillende types objecten:
• Form, Label, PictureBox:MouseDown, MouseUp, Click
• CommandButtonMouseDown, Click, MouseUp
Program
meren m
et Visula B
asic – Les 4
Oefening
Maak een eenvoudig tekenprogramma. Het tekenen gebeurt uiteraard met de muis!
Voorzie de mogelijkheid om in verschillende kleuren te werken en eventueel met verschillende "borstels".