Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Visual Basic: Bild zentrieren in PictureBox

rj.2001 / 3 Antworten / Baumansicht Nickles

Hallo,


habe folgendes Problem:
Ich will in einer PictureBox ein bereits zur Entwurfszeit geladenes Bild oder nachträglich rein geladenes Bild zentrieren.


Leider komme ich hier nicht weiter. Was nicht klappt ist folgendes:
Dim pix as StdPicture
Set pic = PictureBox.Pixture
x = PictureBox.Width / 2 - pic.Width / 2
y = PictureBox.Height / 2 - pic.Height / 2
PictureBox.cls
PictureBox.PaintPicture pic, x, y


Hat da jemand eine Idee?

bei Antwort benachrichtigen
Malte_d rj.2001 „Visual Basic: Bild zentrieren in PictureBox“
Optionen

wennu autosize = true sezt geht net oda ?
so auf die schnelle fällt mir sonst nix anneres ein :(
ich werd mich nochmal schlau machn

bei Antwort benachrichtigen
rj.2001 Malte_d „wennu autosize true sezt geht net oda ? so auf die schnelle fällt mir sonst nix...“
Optionen

Ne, geht nicht, da die PictureBox dann um das Bild herum verkleinert wird. Aber ich habe das jetzt hin bekommen:
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
' Aktuelles Bild an die Größe der PictureBox anpassen
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Function CenterPictureInPictureBox(PictureBox As PictureBox)
Dim AutoRedraw As Boolean
Dim picNew As New StdPicture
Dim PictureWidth As Long
Dim PictureHight As Long

On Local Error Resume Next
Set picNew = PictureBox.Picture
With PictureBox
AutoRedraw = .AutoRedraw
.AutoRedraw = True
PictureWidth = PictureBox.ScaleX(PictureBox.Picture.Width, vbHimetric, vbTwips)
PictureHight = PictureBox.ScaleY(PictureBox.Picture.Height, vbHimetric, vbTwips)
Set PictureBox.Picture = Nothing
PictureBox.Cls
PictureBox.PaintPicture picNew, PictureBox.Width / 2 - PictureWidth / 2, PictureBox.Height / 2 - PictureHight / 2
.AutoRedraw = AutoRedraw
End With
End Function

Leider gibt es mit der Paint Methode ein Problem: Die Transparenz von Gif-Bildern wird falsch dargestellt!
Hat da jemand eine Möglichkeit, dies auch noch zu berücksichtigen?

Danke schon mal

bei Antwort benachrichtigen
Malte_d rj.2001 „Visual Basic: Bild zentrieren in PictureBox“
Optionen

wennu autosize = true sezt geht net oda ?
so auf die schnelle fällt mir sonst nix anneres ein :(
ich werd mich nochmal schlau machn

bei Antwort benachrichtigen