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