UpdateLayeredWindow zeichnet nicht neu ohne psize parameter



  • Hi!

    Warum zeichnet UpdateLayeredWindow den Inhalt nicht neu, wenn psize nicht angegeben wird?

    Laut Doku http://msdn.microsoft.com/en-us/library/windows/desktop/ms633556(v=vs.85).aspx muss man es nicht angeben, wenn die Fenstergröße sich nicht ändert.

    // In backBufferDc zeichnen... dann Update mit size
    
    POINT dcPos = { };
    SIZE size = { 800, 600 };
    BLENDFUNCTION blendFunction = { };
    
    blendFunction.BlendOp = AC_SRC_OVER;
    blendFunction.SourceConstantAlpha = 255;
    blendFunction.AlphaFormat = AC_SRC_ALPHA;
    
    UpdateLayeredWindow(windowHandle, 0, 0, &size, backBufferDc, &dcPos, 0, &blendFunction, ULW_ALPHA);
    
    // OK, Inhalt wurde erneuert
    
    // Wieder in backBufferDc zeichnen... dann Update ohne size
    
    UpdateLayeredWindow(windowHandle, 0, 0, 0, backBufferDc, &dcPos, 0, &blendFunction, ULW_ALPHA);
    
    // Inhalt wurde nicht erneuert! Nur wenn &size angegeben wird, wird erneuert.
    

    😕



  • Anyone?



  • Vermutlich wird eine andere Message erzeugt die dann anders (oder hier evtl. auch garnicht) gehandled wird.


Anmelden zum Antworten