vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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: Ersatz für AutoRedraw 
Autor: GröVBaZ
Datum: 03.02.03 12:33

Hallo MeisterPetz
Hier ein gutes Beispiel:

Dim bm As Bitmap 'für PictureBox1

' Bitmap erzeugen
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
bm = New Bitmap(PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height)
PictureBox1.Image = bm
End Sub

Private Sub PictureBox1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.Resize
' falls bm noch nicht initialisiert wurde: Exit
' (Resize wird bereits vor Form1_Load das erste
' Mal aufgerufen)
If IsNothing(bm) Then Exit Sub
' testen, ob PictureBox jetzt größer ist als die Bitmap
If bm.Width < PictureBox1.ClientSize.Width Or bm.Height < PictureBox1.ClientSize.Height Then
Dim newwidth, newheight As Integer
Dim oldbm As Bitmap = bm
Dim gr As Graphics
' größere Bitmap erzeugen
newwidth = PictureBox1.ClientSize.Width
If bm.Width > newwidth Then newwidth = bm.Width
newheight = PictureBox1.ClientSize.Height
If bm.Height > newheight Then newheight = bm.Height
bm = New Bitmap(newwidth, newheight)
' dorthin den Inhalt der alten Bitmap kopieren
gr = Graphics.FromImage(bm)
gr.DrawImageUnscaled(oldbm, New Point(0, 0))
' Image-Eigenschaft von PictureBox ändern
PictureBox1.Image = bm
' alte Bitmap freigeben
oldbm.Dispose()
gr.Dispose()
' automatisch neuzeichnen
Button1_Click(Nothing, Nothing)
End If
End Sub

' Grafik berechnen
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim gr As Graphics = Graphics.FromImage(bm)
Dim i As Integer
Dim br As SolidBrush = New SolidBrush(Color.Black)
Me.Cursor = Cursors.WaitCursor
gr.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality
For i = 511 To 1 Step -1
br.Color = Color.FromArgb(255, CInt(255 - i / 2), CInt(255 - i / 2))
gr.FillEllipse(br, CSng(i * 1.5), CSng(i / 2 * (1 + Math.Sin(i / 20))), i, i)
If i Mod 4 = 0 Then
gr.DrawEllipse(Pens.Black, CSng(i * 1.5), CSng(i / 2 * (1 + Math.Sin(i / 20))), i, i)
End If
Next
' Grafik anzeigen
PictureBox1.Refresh()
' Aufräumarbeiten
Me.Cursor = Cursors.Default
gr.Dispose()
br.Dispose()
End Sub

Gruss GröVBaZ
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Ersatz für AutoRedraw163MeisterPetz03.02.03 08:17
Re: Ersatz für AutoRedraw633GröVBaZ03.02.03 12:33

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