vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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

Fortgeschrittene Programmierung
Picture Hintergrundfarbe tauschen 
Autor: dj.tommy
Datum: 06.05.07 11:56

Ich habe hier einmal die frage gestellt, wie man die Hintergrundfarbe tauschen kann.
Ich habe die antwort bekommen, das ich es mit diesem Code, die Farbe tauschen kann.
Private Declare Function TransparentBlt& Lib "msimg32" (ByVal hdcDest&, _
  ByVal nXOriginDest&, ByVal nYOriginDest&, ByVal nWidthDest&, ByVal _
  nHeightDest&, _
  ByVal hdcSrc&, ByVal nXOriginSrc&, ByVal nYOriginSrc&, ByVal nWidthSrc&, _
  ByVal nHeightSrc&, ByVal crTransparent&)
 
Private Sub TauscheFarbe(Quelle As PictureBox, alteFarbe&, neueFarbe&)
  Dim TPic As PictureBox
 
  Set TPic = Me.Controls.Add("VB.PictureBox", "P1")
  TPic.ScaleMode = vbPixels
  TPic.AutoSize = True
  TPic.AutoRedraw = True
  With Quelle
    .ScaleMode = vbPixels
    .AutoRedraw = True
    Set TPic.Picture = .Image
    Set .Picture = LoadPicture()
    .Cls
    .BackColor = neueFarbe
    Call TransparentBlt(.hDC, 0, 0, .ScaleWidth, .ScaleHeight, TPic.hDC, 0, 0, _
      .ScaleWidth, .ScaleHeight, alteFarbe)
  End With
  Me.Controls.Remove TPic
End Sub
Nun das klappt alles wunderbar, bis auf eines.
Und zwar ich habe ein Label Steuerelement in Picture hinein gefügt d.h. das der Label Steuerelement im Picture integriert ist.
Nun ist jetzt das Problem, das die Position von Label Steuerelement nicht richtig ist.
Das heißt zu Beispiel das Label Steuerelement die Position Height 255, Width 320 hat.
Nun wenn die Funktion TauscheFarbe zum Einsatz kommt, das dann Label Steuerelement z.B.: Height nicht 255, sondern viel größer ist.

Hat einer eine Idee wie man das Problem lösen kann?
Ich habe mir gedacht, das man es mit Image Steuerelement statt Picture Steuerelement.
Aber leider stimmt dies nicht mit der TauscheFarbe Codes überein.
Und wenn ich den Label Steuerelement außerhalb vom Picture setzte ist das prtoblem das man den Label Steuerelement nicht sieht.
Der aktuelle sieht so aus:
Private Declare Function TransparentBlt& Lib "msimg32" (ByVal hdcDest&, _
  ByVal nXOriginDest&, ByVal nYOriginDest&, ByVal nWidthDest&, ByVal _
  nHeightDest&, _
  ByVal hdcSrc&, ByVal nXOriginSrc&, ByVal nYOriginSrc&, ByVal nWidthSrc&, _
  ByVal nHeightSrc&, ByVal crTransparent&)
 
Private Sub Command9_Click()
Picture1.Picture = Bild.ListImages(2).Picture
TauscheFarbe Picture1, &HFF00FF, &H8000000B
Label9.Height = 255
Label9.Top = 30
Label9.Width = 320
Label9.Left = 30
End Sub
 
Private Sub TauscheFarbe(Quelle As PictureBox, alteFarbe&, neueFarbe&)
  Dim TPic As PictureBox
  Set TPic = Me.Controls.Add("VB.PictureBox", "P1")
  TPic.ScaleMode = vbPixels
  TPic.AutoSize = True
  TPic.AutoRedraw = True
  With Quelle
    .ScaleMode = vbPixels
    .AutoRedraw = True
    Set TPic.Picture = .Image
    Set .Picture = LoadPicture()
    .Cls
    .BackColor = neueFarbe
    Call TransparentBlt(.hDC, 0, 0, .ScaleWidth, .ScaleHeight, TPic.hDC, 0, 0, _
      .ScaleWidth, .ScaleHeight, alteFarbe)
  End With
  Me.Controls.Remove TPic
End Sub
Danke für eure hilfe
Mit freundlichen Grüßen Dj.Tommy
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Picture Hintergrundfarbe tauschen777dj.tommy06.05.07 11:56
Re: Picture Hintergrundfarbe tauschen447Zardoz06.05.07 15:04
Re: Picture Hintergrundfarbe tauschen417dj.tommy06.05.07 18:49

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