vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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
Re: 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 ?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Fensterposition / Reihenfolge988Joe197210.10.06 21:43
Re: Fensterposition / Reihenfolge622vbtricks11.10.06 08:36
Re: Fensterposition / Reihenfolge581Joe197211.10.06 13:15
Re: Fensterposition / Reihenfolge590AndyOG11.10.06 20:55
Re: Fensterposition / Reihenfolge571Joe197211.10.06 21:12
Re: Fensterposition / Reihenfolge624AndyOG11.10.06 23:59
Re: Fensterposition / Reihenfolge576Joe197212.10.06 08:55
Re: Fensterposition / Reihenfolge605Joe197212.10.06 20:55
Re: Fensterposition / Reihenfolge596vbtricks12.10.06 10:23
Re: Fensterposition / Reihenfolge616mm78pr13.10.06 12:50
Re: Fensterposition / Reihenfolge577Joe197213.10.06 17:08
Re: Fensterposition / Reihenfolge578Joe197213.10.06 22:19

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