chris78 Skrevet 7. august 2004 Del Skrevet 7. august 2004 hei, jeg skal lage et veldig enkelt tegneprogram i vb.net, men aner ikke hvordan jeg skal gå frem siden jeg aldri har laget noe lignende før. er det noen som kan gi meg noen tips til hvilke klasser jeg bør bruke og gi meg noen gode forslag til hvordan jeg skal gjøre dette? jeg tenkte at det kanskje gikk an å laste inn ms paint som et com-object, men fant ikke helt ut av om det går, eller hvordan det evt kan gjøres. tips mottas med stor takk Lenke til kommentar
Jonas Skrevet 7. august 2004 Del Skrevet 7. august 2004 (endret) Lim inn denne koden i et nytt prosjekt: Private Sub form_Mousemove(Butten As Integer, Shift As Integer, X As Single, Y As Single) If Butten = 1 Then '1 en venstreklikk Me.PSet (X, Y) End If End Sub Private Sub form_load() Me.AutoRedraw = True Me.DrawWidth = 5 Me.ForeColor = &HFF& End Sub Edit: Vb.net ?? Ops .. Endret 7. august 2004 av Jonas Lenke til kommentar
aadnk Skrevet 7. august 2004 Del Skrevet 7. august 2004 Det er antagentlig mulig å legge en referanse til Paint programmet, mest sannsynlig med OLED, da dette var veien å gå med VB6. Men jeg vil tro du vil tjene mer ved å lage koden selv. Følgende kode er et eksempel på hva du kan gjøre, og som du kan jobbe videre med: Dim lastX As Int16, lastY As Int16 ' Autoredraw eksisterer ikke lenger i VB.NET, så vi må gjøre alt manuelt Dim Bitmap As System.Drawing.Bitmap Private Sub picPaint_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picPaint.MouseDown lastX = e.X lastY = e.Y End Sub Private Sub picPaint_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picPaint.MouseMove If e.Button = Windows.Forms.MouseButtons.Left Then Dim g As Graphics = Graphics.FromImage(Bitmap) g.DrawLine(Pens.Black, e.X, e.Y, lastX, lastY) picPaint.Image = Bitmap g.Dispose() lastX = e.X lastY = e.Y End If End Sub Private Sub picPaint_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles picPaint.Paint e.Graphics.DrawImage(Bitmap, 0, 0) End Sub Private Sub picPaint_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles picPaint.Resize Bitmap = New System.Drawing.Bitmap(picPaint.Width, picPaint.Height) End Sub Lenke til kommentar
chris78 Skrevet 8. august 2004 Forfatter Del Skrevet 8. august 2004 takk for den koden aadnk, det var akkurat noe slikt jeg var ute etter. jeg lurer imidlertid litt på om det finnes noen enkel måte å lage rektangler og ellipser på også, vha musa slik at jeg slipper å skrive inn drawrectangle(x,y,n,m) osv....eller må jeg da lage en metode for dette selv? Lenke til kommentar
GeirGrusom Skrevet 9. august 2004 Del Skrevet 9. august 2004 Private Sub DrawRects(ByVal g As Graphics) Dim r As Rectangle r = Me.RectangleToClient(New Rectangle(Me.MousePosition.X - 16, Me.MousePosition.Y - 16, 32, 32)) g.DrawRectangle(Pens.Black, r) End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove DrawRects(Me.CreateGraphics()) End Sub Lenke til kommentar
kallemax Skrevet 9. august 2004 Del Skrevet 9. august 2004 Lim inn denne koden i et nytt prosjekt: Private Sub form_Mousemove(Butten As Integer, Shift As Integer, X As Single, Y As Single) If Butten = 1 Then '1 en venstreklikk Me.PSet (X, Y) End If End Sub Private Sub form_load() Me.AutoRedraw = True Me.DrawWidth = 5 Me.ForeColor = &HFF& End Sub Edit: Vb.net ?? Ops .. Jævlig bra! Tusen takk, Jonas! Lenke til kommentar
GeirGrusom Skrevet 9. august 2004 Del Skrevet 9. august 2004 ...men bytt ut PSet med line så tenker jeg det ser bedre ut. Lenke til kommentar
Jonas Skrevet 9. august 2004 Del Skrevet 9. august 2004 ...men bytt ut PSet med line så tenker jeg det ser bedre ut. Uten å en pset ved klikk ser også line ganske dumt ut. Slik ser ikke dumt ut: Private Sub form_Mousemove(Butten As Integer, Shift As Integer, X As Single, Y As Single) If Butten = 1 Then '1 en venstreklikk Me.Line -(X, Y) End If End Sub Private Sub form_Mousedown(Butten As Integer, Shift As Integer, X As Single, Y As Single) If Butten = 1 Then '1 en venstreklikk Me.PSet (X, Y) End If End Sub Private Sub form_load() Me.AutoRedraw = True Me.DrawWidth = 5 Me.ForeColor = &HFF& End Sub Lenke til kommentar
MagneH Skrevet 10. august 2004 Del Skrevet 10. august 2004 Du bør bruke System.Drawing, søk på google etter 'system.drawing vb example program' for å finne eksempler. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå