| |

Fortgeschrittene ProgrammierungRe: Fensterposition / Reihenfolge | |  | Autor: Joe1972 | Datum: 12.10.06 20:55 |
| Hallo, hab hier mal was ausprobiert....
der Code bewirkst das eine Picturebox Direkt auf den desktop dargestellt wird, mit den icons im vordergrund. Hat nur so ein paar schönheitsfehler... Wenn man ein icon anklickt wird das bild zerstört.
Bitte, Bitte... hab wirklich schon einiges ausprobiert. Aber im Code scheinen noch einige Fehgler zu stecken...
Option Explicit
' Benötigte API-Deklarationen
Private Declare Function GetDesktopWindow Lib "user32.dll" () As Long
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowRect Lib "user32.dll" ( _
ByVal hwnd As Long, _
ByRef lpRect As RECT) As Long
Private Declare Function TransparentBlt Lib "msimg32.dll" ( _
ByVal hdc As Long, _
ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, _
ByVal crTransparent As Long) As Long
Private Declare Function InvalidateRect Lib "user32.dll" ( _
ByVal hwnd As Long, lpRect As Any, ByVal bErase As Long) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Function DrawItem(varItem As PictureBox, _
Optional ByVal x As Single = -1, _
Optional ByVal y As Single = -1, _
Optional ByVal lngTransparency As ColorConstants = vbMagenta)
Dim dc As Long
Dim varScreen As RECT
Dim varPicture As RECT
Dim hwnd As Long
' Handle des Windows-Desktop ermitteln
hwnd = GetDesktopWindow()
hwnd = 65688 'Dummywert
dc = GetWindowDC(hwnd)
' Größe des Desktopbereichs ermitteln
GetWindowRect hwnd, varScreen
' Größe der PictureBox ermitteln
GetWindowRect varItem.hwnd, varPicture
With varPicture
.Right = .Right - .Left
.Bottom = .Bottom - .Top
varScreen.Right = varScreen.Right - .Right + 1
varScreen.Bottom = varScreen.Bottom - .Bottom + 1
End With
x = 200
y = 200
With varPicture
DrawItem = (TransparentBlt(dc, varScreen.Left + x, varScreen.Top + y, _
.Right, .Bottom, varItem.hdc, 0, 0, .Right, .Bottom, lngTransparency) = 1)
End With
End Function
Private Sub Command1_Click()
InvalidateRect False, True, True
End Sub
Private Sub Command2_Click()
InvalidateRect False, True, True
DrawItem Picture1
End Sub
Um das Programm nachzubauen einfach zwei buttons und eine Picturebox in eine Form einbauen. Ihr müsst alle anderen Fenster in den Hintergrundbringen (sonst seht ihr den desktop nicht. Danach Button 2 drücken... und dann...
Wer kann mir helfen eine Form oder Picturebox zwischen Icons und Wallpaper darzustellen, ohne das ich was zwischenspeichern muss ? |  |
 | 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 |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevAniGif (VB/VBA) 
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. 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
|
|