Ich habe mir ein Programm gemacht, was ähnlich wie Paint funktioniert.
Also man kann ein Bild laden und dann darauf rummalen.
Leider ist da iwie etwas komisch. Wenn zB die Maus unten rechts ist, dann ist der Punkt nicht unten rechts, sondern weiter oben...
Wenn ich die Kanten unten und rechts lang gehe, dann erkennt man das Fenster wo er nur malt:
Und so sieht mein Code dazu aus:
Wo muss ich was ändern, damit er nun überall malt und nicht einen Teil auslässt?
Also man kann ein Bild laden und dann darauf rummalen.
Leider ist da iwie etwas komisch. Wenn zB die Maus unten rechts ist, dann ist der Punkt nicht unten rechts, sondern weiter oben...
Wenn ich die Kanten unten und rechts lang gehe, dann erkennt man das Fenster wo er nur malt:
Und so sieht mein Code dazu aus:
VB.NET-Quellcode
- '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PictureBoxControls ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ' Pen-Control in Picturebox
- Private Sub pencil_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pencil.Click
- pn_klck = 1
- End Sub
- ''Klick in Picturebox
- Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
- If pn_klck_in = 0 And pn_klck = 1 Then
- pn_klck_in = 1
- ElseIf pn_klck_in = 1 Then
- pn_klck_in = 0
- Else
- End If
- End Sub
- '' Rubber-Control in Picturebox
- Private Sub rubber_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rubber.Click
- pn_klck = 0
- pn_klck_in = 0
- With PictureBox1
- .Visible = True
- .Load(dat_path)
- '.SizeMode = PictureBoxSizeMode.CenterImage
- .SizeMode = PictureBoxSizeMode.StretchImage
- .BorderStyle = BorderStyle.Fixed3D
- 'Bearbeitungsknöpfe
- .Controls.Add(pencil)
- .Controls.Add(rubber)
- .Controls.Add(SavePic)
- pencil.Visible = True
- rubber.Visible = True
- SavePic.Visible = True
- End With
- End Sub
- '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Funktionen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ' ZeichnenFkt.
- Private Sub picOut_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
- If pn_klck = 1 Then
- If pn_klck_in = 1 Then
- ' Graphics-Objekt erstellen
- Using g = Graphics.FromImage(PictureBox1.Image), Brush = New SolidBrush(Color.FromArgb(200, Color.Red))
- g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
- g.FillEllipse(Brush, e.Location.X, e.Location.Y, 20, 20)
- End Using
- ' Ergebnis anzeigen
- PictureBox1.Invalidate()
- End If
- End If
- End Sub
Wo muss ich was ändern, damit er nun überall malt und nicht einen Teil auslässt?