![]() |
Transparent und TopMost Problem
Was stimmt daran nicht? Mal funktioniert es, mal funktioniert es nicht. Und wenn es nicht funktioniert, dann richtig. Nicht nur, dass es dann nicht TopMost ist, das Ding ist so weit Bottom-Most, dass es sogar unter den Desktopicons verschwindet.
Delphi-Quellcode:
procedure MakeWndTransparent(AHandle: HWND; Value: Boolean);
var curWinStyle: Integer; begin curWinStyle := GetWindowLong(AHandle, GWL_EXSTYLE); if Value then SetWindowLong(AHandle, GWL_EXSTYLE, curWinStyle or WS_EX_TRANSPARENT) else SetWindowLong(AHandle, GWL_EXSTYLE, curWinStyle and (not WS_EX_TRANSPARENT)); end; procedure MakeWndTopMost(AHandle: HWND; Value: Boolean); const WndInsertAfter: array[Boolean] of HWnd = (HWND_TOPMOST, HWND_NOTOPMOST); begin SetWindowPos(AHandle, WndInsertAfter[Value], 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); end; procedure MakeWndTransparentAndTopMost(AHandle: HWND; Value: Boolean); begin MakeWndTransparent(AHandle, Value); MakeWndTopMost(AHandle, Value); end; |
AW: Transparent und TopMost Problem
Ok, ich hab es, aber auch nur zufällig. In den Tiefen des Programms wird beim AlphaBlendValue von 255 AlphaBlend auf False geschaltet, sonst True. Ich weiß zwar noch nicht warum, aber anscheinend bringt es das Ding komplett aus dem Konzept. Mein Programm unter den Icons habe ich auch noch nicht gesehen.
Frage gelöst. |
AW: Transparent und TopMost Problem
AlphaBlend = WS_EX_TRANSPARENT
und WS_EX_TOPMOST steckt im GWL_EXSTYLE Daß sich dabei nun etwas gegenseitig beeinflußt, wäre also selbstverständlich. |
AW: Transparent und TopMost Problem
Zitat:
|
AW: Transparent und TopMost Problem
Zitat:
|
AW: Transparent und TopMost Problem
Deine erste Bemerkung liest sich aber anders.
|
AW: Transparent und TopMost Problem
Zitat:
Spielt man an WS_EX_TRANSPARENT rum, hat es einen Einfluß auf AlphaBlend. und Wird an SetWindowPos+HWND_NOTOPMOST/HWND_TOPMOST rumgemacht, dann hat es einen Einfluß auf GWL_EXSTYLE+WS_EX_TOPMOST. Es beeinflußt sich alles alles irgendwie gegenseitig, da kann es eventuell auch gewisse Nebenwirkungen Wechselwirkungen geben. |
AW: Transparent und TopMost Problem
Eine Beobachtung: unabhängig dessen ob WS_EX_TOPMOST im GWL_EXSTYLE steckt und mit HWND_TOPMOST gewisse Wechselwirkungen eingeht, das oben beschriebene Problem liegt nicht daran.
Der Grund liegt wie bereits vermutet bei AlphaBlend gleich False. Ist AlphaBlend gleich False, spinnt die obere Funktion total. Hab zufällig wieder den Fehler gemacht und fand mein Programm plötzlich wieder unter den Icons. Und dieses mal spielte HWND_TOPMOST keine Rolle. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz