Problem mit scrolling bei $WS_EX_LAYERED child windows

  • 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.

  • Hi :)

    Ich konnte das Problem leider nicht nachstellen. Vermutlich ist meine Hardware etwas schneller.

    Mein erster Ansatz wäre das Neuzeichnen des Childs während des Scrollens zu verhindern (evtl. auch des Parents).

    AutoIt
    #include <WindowsConstants.au3>
    _SendMessage($hGui, $WM_SETREDRAW, False) ; disable window drawing
    ; scrolling => your code >> _GUIScrollBars_SetScrollInfoPos($hWnd, $SB_VERT, $iCurScrollPos + 5)
    _SendMessage($hGui, $WM_SETREDRAW, True) ; enable window drawing
    _WinAPI_RedrawWindow($hGui) ; manually trigger a redraw
  • also ich habe mit Aaron3569 seinem code die selben Fehler beim scrollen, bei mir sieht das so aus wie große Viereckige Artefakte im oberenteil und etwas daraus hinaus der GUI aber diese verschwinden wieder sofort.

    und ich hab ein Monster an PC ... nur die Grafikkarte ist etwas älter 1080ti ...

    bei deiner Variante Kanashius habe ich diese Artefakte nicht, dafür flackert das angezeigte Bild beim Scrollen komplett, aber sieht vom Ansatz her richtiger aus als Variante 1.

    Kanashius

    wäre das so richtig einbaut?

    Es ist ein interessantes Thema leider habe ich selbst keine eigene Lösung für Aaron3569 parat.

  • Kanashius danke für die Antwort, leider wie bereits MojoeB erwähnte, flackert nun das komplette Bild, zumindest clippt es so nicht mehr raus, ist ja mal ein Fortschritt. Ich denke aber nicht das es an zu Langsamer Hardware liegt (10900K / 2080ti)