180 likes | 307 Views
Les 4 De Muis (deel 1). Programmeren met Visual Basic Karl Moens. Overzicht. Oplossing van de vorige oefeningen Geschiedenis Aansturen van de muis Oefening. Oplossing van de oefeningen. Zie programma Les3F.
E N D
Les 4De Muis(deel 1) Programmeren met Visual Basic Karl Moens
Overzicht • Oplossing van de vorige oefeningen • Geschiedenis • Aansturen van de muis • Oefening
Oplossing van de oefeningen • Zie programma Les3F
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. De Muis
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
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)
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.
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.
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 object • De standaard gebruikte maateenheid is de twip (1 inch = 1440 twips)
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)
Aansturen van de muis • Welke eenheden worden gebruikt hangt af van de ScaleMode-eigenschap van het formulier
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: Indien meerdere knoppen zijn ingedrukt worden de waarden opgeteld.
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!
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)
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
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.
Aansturen van de muis • De volgorde van de events is verschillend voor verschillende types objecten: • Form, Label, PictureBox: MouseDown, MouseUp, Click • CommandButton MouseDown, Click, MouseUp
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".