Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

UpdateLayerWindow - Invalid Parameter

  Alt 20. Mär 2008, 16:36
Hi,

Habe hier ein Formular mit WS_EX_LAYERED. Jedoch flackert das Fenster relativ stark beim resizen und verschieben. Also schätze ich muss ich beim resizen und verschieben UpdateLayeredWindow aufrufen.

Wenn das bis hierhin falsch ist, dann braucht ihr gar nicht weiterzulesen, dann klärt mich auf^^

So ich tue das im Moment so:

Delphi-Quellcode:
WM_SIZE: begin
            // bf: _BLENDFUNCTION
            bf.BlendOp := AC_SRC_OVER;
            bf.BlendFlags := 0;
            bf.AlphaFormat := 0;
            bf.SourceConstantAlpha := FAlpha;
            // NewSize: TSize
            NewSize.cx := FWidth;
            NewSize.cy := FHeight;

            if not UpdateLayeredWindow(Handle,0,nil,@NewSize,GetDC(Handle),nil,0,@bf,ULW_ALPHA)
              ShowMessage(SysErrorMessage(GetLastError)); // Zu testzwecken
          end;
Ich bekomme immer den Fehler:

Zitat:
---------------------------
Message
---------------------------
The parameter is incorrect
---------------------------
OK
---------------------------
Was mache ich denn da falsch? Habs mir bei MSDN angeguckt und ich mache alles so wies da steht. Habs auch schon mit CreateCompatibleDC(GetDC(Handle)) versucht statt nur GetDC(Handle), ändert aber nichts.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat