| |

VB.NET - FortgeschritteneRe: 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 |  |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere Infos
|
|
|
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
|
|