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

Visual-Basic Einsteiger
Re: Picturebox transparent machen? 
Autor: Zardoz
Datum: 21.02.07 16:56

Hi dD,
probier mal dieses:
' Controls: 3 * Picturebox
 
' Copyright © 2007 by Zardoz
 
Option Explicit
 
' AlphaBlend: NT/2000/XP/Vista: Included in Windows 2000 and later.
Private Declare Function AlphaBlend& Lib "msimg32.dll" (ByVal hdcDest&, ByVal _
  XDest&, _
  ByVal YDest&, ByVal WidthDest&, ByVal HeightDest&, ByVal hDCSrc&, ByVal _
  xSrc&, _
  ByVal ySrc&, ByVal WidthSrc&, ByVal HeightSrc&, ByVal Blendfunc&)
 
Private Declare Function BitBlt& Lib "gdi32.dll" (ByVal hdcDest&, ByVal XDest&, _
  ByVal YDest&, _
  ByVal nWidth&, ByVal nHeight&, ByVal hDCSrc&, ByVal xSrc&, ByVal ySrc&, ByVal _
  dwRop&)
 
Private SW&, SH&, XPos!, YPos!
 
Private Sub Form_Load()
  Dim Dat1$, Dat2$
 
  Dat1 = "C:\Grund1.jpeg" 'Hintergrundbild
  Dat2 = "C:\Objekt1.jpeg" ' Objektbild
 
  Me.ScaleMode = vbPixels
  With Picture1
    .ScaleMode = vbPixels
    .Move 0, 0
    .AutoSize = True
    Set .Picture = LoadPicture(Dat1)
    .AutoRedraw = True
  End With
  With Picture3
    .Visible = False
    .ScaleMode = vbPixels
    .AutoSize = True
    Set .Picture = LoadPicture(Dat2)
    SW = .ScaleWidth
    SH = .ScaleHeight
    .AutoRedraw = True
  End With
  With Picture2
    .ScaleMode = vbPixels
    .BorderStyle = vbBSNone
    Set .Container = Picture1
    .Move 8, 8, SW, SH
    .AutoRedraw = True
  End With
  Call Picture2_MouseUp(0, 0, 0, 0)
End Sub
 
Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, X As _
  Single, Y As Single)
  XPos = X
  YPos = Y
  Picture2.ZOrder vbBringToFront
  Call Picture2_MouseMove(Button, Shift, X, Y)
End Sub
 
Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As _
  Single, Y As Single)
  If Button = vbLeftButton Then
    With Picture2
      .Move .Left - XPos + X, .Top - YPos + Y
      Call BitBlt(.hDC, 0, 0, SW, SH, Picture1.hDC, .Left, .Top, vbSrcCopy)
      Call AlphaBlend(.hDC, 0, 0, SW, SH, Picture3.hDC, 0, 0, SW, SH, CLng( _
        &H10000 * 128))
      .Refresh
    End With
  End If
End Sub
 
Private Sub Picture2_MouseUp(Button As Integer, Shift As Integer, X As Single, _
  Y As Single)
  Call BitBlt(Picture2.hDC, 0, 0, SW, SH, Picture3.hDC, 0, 0, vbSrcCopy)
  Picture2.Refresh
End Sub

Gruss,

Zardoz

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
picturebox Transparent machen?1.204dD15.02.07 21:51
Re: picturebox Transparent machen?844Zardoz16.02.07 00:44
Re: picturebox Transparent machen?772dD16.02.07 09:29
Re: picturebox Transparent machen?855Zardoz18.02.07 20:52
Re: picturebox Transparent machen?748dD19.02.07 11:39
Re: Picturebox transparent machen?1.428Zardoz21.02.07 16:56
Re: Picturebox transparent machen?761dD21.02.07 23:04

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