Simpel tekenprogramma.

  • Onderwerp starter Onderwerp starter GDay
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

GDay

Gebruiker
Lid geworden
30 aug 2007
Berichten
133
Hey ik heb nu een héél simpel tekenprogrammaatje in vb 2005 gemaakt
Je kan uit 10 kleuren kiezen en je kunt de grote van je ''pen'' bepalen

Weet iemand hier wat meer van af
Hoe je bijvoorbeeld rechtelijnen/vierkantjes/rondjes ect kan laten maken?

Gday:thumb:

Mijn code is :


Code:
Public Class Form1

    Private DrawBitmap As Bitmap
    Private DrawGraphics As Graphics
    Private DrawBrush As Brush

    Private Sub Form1_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles Me.Load
        DrawBitmap = New Bitmap(PictureBox1.Width, PictureBox1.Height)
        DrawGraphics = Graphics.FromImage(DrawBitmap)
        PictureBox1.Image = DrawBitmap
        With ComboBox1
            .Items.Add(2)
            .Items.Add(4)
            .Items.Add(8)
            .Items.Add(16)
            .Items.Add(24)
            .Items.Add(32)
            .Items.Add(64)
            .Items.Add(96)
            .Items.Add(128)
        End With
        ComboBox1.SelectedIndex = 0
        With ComboBox2
            .Items.Add("Zwart")
            .Items.Add("Rood")
            .Items.Add("Groen")
            .Items.Add("Blauw")
            .Items.Add("Wit")
            .Items.Add("Paars")
            .Items.Add("Goud")
            .Items.Add("Roze")
            .Items.Add("Maroon")
            .Items.Add("Citroengeel")
            .Items.Add("Lichtblauw")
            .Items.Add("Grijs")
        End With
        ComboBox2.SelectedIndex = 0
    End Sub

    Private Sub PictureBox1_MouseMove(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
        If e.Button = Windows.Forms.MouseButtons.Left Then
            Select Case ComboBox2.SelectedIndex
                Case 0
                    DrawBrush = Brushes.Black
                Case 1
                    DrawBrush = Brushes.Red
                Case 2
                    DrawBrush = Brushes.Green
                Case 3
                    DrawBrush = Brushes.Blue
                Case 4
                    DrawBrush = Brushes.White
                Case 5
                    DrawBrush = Brushes.Purple
                Case 6
                    DrawBrush = Brushes.Gold
                Case 7
                    DrawBrush = Brushes.Pink
                Case 8
                    DrawBrush = Brushes.Firebrick
                Case 9
                    DrawBrush = Brushes.LemonChiffon
                Case 10
                    DrawBrush = Brushes.LightSkyBlue
                Case 11
                    DrawBrush = Brushes.Gray
                Case 11





                Case Else
                    DrawBrush = Brushes.Black
            End Select
            DrawGraphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
            DrawGraphics.FillEllipse(DrawBrush, e.X, e.Y, _
            CInt(ComboBox1.SelectedItem), CInt(ComboBox1.SelectedItem))
            PictureBox1.Image = DrawBitmap
        End If
    End Sub

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

    End Sub

  
    
    Private Sub ControlsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

    End Sub
End Class
 
Hieronder een voorbeelden van een een lijn, een ellips/cirkel en een vierkant... Succes!

Code:
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        DrawMap(e.Graphics)
    End Sub

    Private Sub DrawMap(ByVal m As System.Drawing.Graphics)
        Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Black)

'----Teken een lijn----
        Dim x1, y1, x2, y2 As Single
        'Geef het begin- en eindpunt op       
        x1 = 100 : y1 = 100
        x2 = 150 : y2 = 150
        'Teken de lijn
        m.DrawLine(myPen, 0, 0, 100, 100)

'----Teken een ellips----
        Dim myRect As RectangleF
        'Geef coordinaten centrum op
        myRect.X = 100
        myRect.Y = 100
        'Geef breedte ellips op
        myRect.Width = 50
        'Geef hoogte ellips op
        myRect.Height = 100 'of gelijk aan de breedte (= 50) voor een cirkel
        'Teken de ellips
        m.DrawEllipse(myPen, myRect)

'----Teken een vierkant----
        'Geef de hoekpunten op       
        x1 = 100 : y1 = 100
        x2 = 150 : y2 = 150
       'Teken het vierkant
        m.DrawRectangle(myPen, x1, y1, x2, y2)

        'Geef het Pen object vrij
        myPen.Dispose()
    End Sub
 
Dankje voor de codes :thumb:


k deed ze trouwens in een command button en het werkte niet

Wat doe ik verkeerd :eek:

Gday:thumb:
 
Ey ik snap het al !

Maar als ik nu het form start staat die cirkel er gewoon al ??
Ik wil graag dat je die zelf kunt maken ?

Edit//

Ik bedoel bijv je drukt op een commandbutton en je klikt daarna in de picture box en je hebt een begin punt
Waar je de volgende x drukt eindigt het ( zoals bij paint )
 
Laatst bewerkt:
Wat je zou kunnen doen is in classes bijhouden wat iemand tekent. Stel de gebruiker kan cirkels tekenen in je pakket, dan zou ik een collectie colCirkels van een class clsCirkels maken waarin ik de nodige info opsla (bijvoorbeeld: lijntype, lijndikte, kleur, x, y, breedte, hoogte).

Zodra een gebruiker een cirkel maakt en hij is klaar, dan sla ik de gegevens op in de class clsCirkels.

In DrawMap staat dan zoiets als:
Code:
Dim objCirkel As clsCirkels

For Each objCirkel in colCirkels
    With clsCirkel
        m.DrawEllipse(myPen, .X, .Y, .Height, .Width)
    End With
Next

Succes!
 
Met classes enzo heb ik nog nooit gewerkt

Wat moet ik nu precies doen :eek:

Gday:thumb:
 
Heb je weleens overwogen om een goed boek te lezen over 't programmeren in VB.NET ? Zou best wel de moeite waard zijn lijkt me. (niet flauw bedoeld)
 
Ik woon m,aar in zoon klein dorpje met een mini biebje.
 
Ik woon m,aar in zoon klein dorpje met een mini biebje.

In dat kleine dorpje heb je blijkbaar wel gewoon internet. Dus je hebt de mogelijkheid om een ebook te downloaden of om ergens een boek te bestellen. (www.comcol.nl bijvoorbeeld)

Je zal merken dat je daardoor een stuk meer leert dan dat je zomaar wat aankloot.
 
Om een Class toe te voegen is nie zo moeilijk zie plaatje:

Klik in het menu op Add new items, kies een Class, en klik Add

attachment.php
 

Bijlagen

  • Naamloos.gif
    Naamloos.gif
    81,9 KB · Weergaven: 213
Is er een boek dat je aanraad?

COD_NL?

Ik werk zelf niet met VB.NET, dus kan je geen boek aanraden. Maar de boeken van Wrox/Addison Wesley zijn doorgaans wel goed.

Waarschijnlijk kan iemand die meer met VB bezig is je wel een goed boek aanraden. Succes in ieder geval. :D

ps: goede boeken kunnen best duur zijn. :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan