| |

VB.NET - Ein- und UmsteigerRe: Lupenfunktion | |  | Autor: lakamabi | Datum: 10.01.08 13:33 |
| Noch mal ein schneller Tipp von mir :
Um ein ruckeln bei der Bilddarstellung zu verhindern, sollte man einen Timer benutzen, der wenn er abläuft das Bild darstellt. Beim Mausbewegungen wird er immer wieder gestoppt und neu gestartet.
Ich habs so gelöst und es funktioniert wunderbar !!!
pbLupe und pbAuswahl sind Pictureboxes
tLupe ist ein Timer mit einem Interval von 15 ms
class test
Private r As Rectangle
Private intXGroesse As Integer = 50 * PB_XFAKTOR
Private dblFaktor As Double
Private b As Bitmap
Private i As Image
Private tbmp As Bitmap
Private AlreadyCreated As Boolean
Private g As Graphics
Private MausPosi As Point
Private Sub pbAuswahl_MouseEnter(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles pbAuswahl.MouseEnter
'Einmaliges Anlegen der fixen Parameter
If Not AlreadyCreated Then
r = New Rectangle
r.Height = pbAuswahl.Height
r.Width = pbAuswahl.Width
dblFaktor = pbLupe.Width / pbLupe.Height
b = New Bitmap(pbLupe.Width, pbLupe.Height)
i = pbAuswahl.Image
tbmp = New Bitmap(pbAuswahl.Width, pbAuswahl.Height) 'temporäres
' Bitmap erzeugen
g = Graphics.FromImage(b)
AlreadyCreated = True
End If
pbLupe.Visible = True
tLupe.Enabled = True
End Sub
Private Sub pbAuswahl_MouseLeave(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles pbAuswahl.MouseLeave
pbLupe.Visible = False
tLupe.Enabled = False
End Sub
Private Sub pbAuswahl_MouseMove(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles pbAuswahl.MouseMove
MausPosi.X = e.X
MausPosi.Y = e.Y
tLupe.Stop()
tLupe.Start()
End Sub
Private Sub tLupe_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles tLupe.Tick
pbAuswahl.DrawToBitmap(tbmp, r) 'Inhalt der Picturebox Hineinzeichnen
g.DrawImage(tbmp, New Rectangle(0, 0, pbAuswahl.Width, _
pbAuswahl.Height), _
New Rectangle(MausPosi.X - intXGroesse, MausPosi.Y _
- CInt(intXGroesse / dblFaktor), _
intXGroesse * 2, CInt(intXGroesse / dblFaktor) * _
2), GraphicsUnit.Pixel)
pbLupe.Image = b
End Sub
end class ist natürlich jetzt auf mein Programm angepasst aber ich denke die Systematik sollte klar sein.
Vielen Dank nochmal für die Hilfe hier.
Gruß
Sebastian |  |
 | 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 |
  |
|
TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere 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
|
|