Hallo, ich habe folgendes Problem: Wenn ich ein Child Window über _WinAPI_UpdateLayeredWindowEx mit einem Bild versehe, scheint es beim Scrollen des Parent Windows Clipping Probleme zu geben. Es kommt immer wieder vor das bei einem scroll der Inhalt des Child Windows dann für einen kurzen Moment außerhalb des Parent Windows zu sehen ist. Könnt ihr den Beispielcode mal ausprobieren und sehen ob ihr das auch habt? ladet einfach eine beliebige Bilddatei , am besten eine etwas größere um den Effekt bessere zu sehen und dann einfach starten und schnell hoch und runter scrollen, entsprechend sollte dann irgendwann das Bild oben oder unten "raus clippen". Es ist sehr random also dauert es manchmal ein paar scrolls. Jemand eine Idee? leider habe ich keinen weg gefunden es sauber zu clippen wie es sonst ist wenn man normale Child Windows benutzt.
#include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
#include <WinAPIConv.au3>
#include <GuiScrollBars.au3>
#include <GDIPlus.au3>
#include <WinAPISysWin.au3>
GUIRegisterMsg($WM_MOUSEWHEEL, "_WM_MOUSEWHEEL")
$hParent = GUICreate("Test", 900, 500, -1, -1)
GUISetState(@SW_SHOW, $hParent)
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\texture.jpg")
$hChild = GUICreate("Child", 150, 150, 0, 0, $WS_CHILD, $WS_EX_LAYERED, $hParent)
_WinAPI_UpdateLayeredWindowEx($hChild, -1, -1, _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage), 255, true)
GUISetState(@SW_SHOW, $hChild)
_GUIScrollBars_Init($hParent, -1, 100)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Func _WM_MOUSEWHEEL($hwnd, $Msg, $wParam, $lParam)
Local $iCurScrollPos = _GUIScrollBars_GetScrollInfoPos($hWnd, $SB_VERT)
Switch _WinAPI_HiWord($wParam) / 120
Case -1
_GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, $iCurScrollPos + 5)
Case 1
_GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, $iCurScrollPos - 5)
EndSwitch
EndFunc
Alles anzeigen