vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Kreis frei bewegen 
Autor: Flosch
Datum: 04.01.08 22:51

Anbei nochmal ein angepasster Code.
In diesem zeichne ich nur ein Ausschnitt des Bildes neu.
Brauche aber immer noch je nach Schnelligkeit der Mausbewegung bis zu 80% CPU

Für eine bessere Methode wäre ich dankbar!

Public Class Form1
 
    Dim ApPath As String
    Dim MousePoint As Point
    Dim Rect As Rectangle
    Dim Rectold As Rectangle
    Dim b As New SolidBrush(Color.Pink)
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
 
        'Hintergrundbild Laden
        ApPath = Application.StartupPath
        Dim Bild As String = ApPath & "\Bilder\background.jpg"
        PictureBox1.Size = Me.Size
        PictureBox1.BackgroundImage = New Bitmap(ApPath & _
          "\Bilder\background.jpg")
 
        'Variablen Test
        MousePoint.X = 0
        MousePoint.Y = 0
        Rectold.X = 0
        Rectold.Y = 0
        Rectold.Width = 50
        Rectold.Height = 50
 
    End Sub
 
    'Größe Hintergrund anpassen
    Private Sub Form1_Resize(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles Me.Resize
        PictureBox1.Size = Me.Size
    End Sub
 
    Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
 
        'Rechteck in Kreisgröße zeichnen (Mittelpunt = Punkt der Maus)
        Rect.X = e.X - 25
        Rect.Y = e.Y - 25
        Rect.Width = 50
        Rect.Height = 50
 
        'Punkt der Maus Soll Mitte des Kreises werden
        MousePoint.X = e.X - 25
        MousePoint.Y = e.Y - 25
 
        'Bildausschnitte neu Zeichnen (alte Position der Maus und neue)
        PictureBox1.Invalidate(Rectold)
        PictureBox1.Invalidate(Rect)
 
        Rectold = Rect
    End Sub
 
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
 
        'Punkt zeichnen
        e.Graphics.FillEllipse(b, MousePoint.X, MousePoint.Y, 50, 50)
 
    End Sub
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Kreis frei bewegen2.511Flosch04.01.08 20:17
Re: Kreis frei bewegen1.947Flosch04.01.08 22:51
Re: Kreis frei bewegen1.855GPM04.01.08 23:29
Re: Kreis frei bewegen1.927Flosch05.01.08 01:19
Re: Kreis frei bewegen1.894Drapondur05.01.08 06:30

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel