Fenster Animation
Fenster Animation
Habe gerade das Problem, dass Child-Windows erst sichtbar werden sollen wenn die maximier-Animation beendet ist. Noch besser wäre es, wenn diese an die Animation angebunden wären.
Hoffe das wäre lösbar.
Re: Fenster Animation
Offtopic: Echt lustig anderen bei der Arbeit zu zusehen (in der Art, welche Fragen sie im Forum stellen) ^^
Wiedermal muss ich nachfragen: Was ist eine "maximier-Animation"?
Wenn ich auf maximieren klicke, ist das Fenster augenblicklich im Vollbild.
Wiedermal muss ich nachfragen: Was ist eine "maximier-Animation"?
Wenn ich auf maximieren klicke, ist das Fenster augenblicklich im Vollbild.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Fenster Animation
Ja
, leider gibt es gewisse Fragen die man als Windows Nutzer für Linux oder Mac nicht weis. Auch Windows hat manch seltsame Probleme wie momentan z.B #WM_NCLBUTTTONUP - andere Geschichte, aber nicht nur mit PB ein Problem.
Ab Vista gibt es diese "Transition"-Effekte. Beim mini-/maximieren fluppt das Fenster dann in einer Animation nach unten/oben. Beim Minimieren kein Problem, da alle Childs sofort ausgeblendet werden. Doch beim Maximieren sind die Childs sofort sichtbar während das Fenster noch am kommen ist.
Natürlich könnte man ein Delay nehmen, aber das ist definitiv zu ranzig und unzuverlässig.
Ich könnte schwören, dass Fenster fest miteinander verbunden werden können, damit alle Childs genauso herum fluppen.
Ab Vista gibt es diese "Transition"-Effekte. Beim mini-/maximieren fluppt das Fenster dann in einer Animation nach unten/oben. Beim Minimieren kein Problem, da alle Childs sofort ausgeblendet werden. Doch beim Maximieren sind die Childs sofort sichtbar während das Fenster noch am kommen ist.
Natürlich könnte man ein Delay nehmen, aber das ist definitiv zu ranzig und unzuverlässig.
Re: Fenster Animation
Am besten wäre es das layered Window mit dem eigentlichen Fenster zu verbinden, wodurch es die selbe Transformation erlebt wie das Fenster. Die Frage ist nur wie diese verbunden werden können, denn das layered Window ist im non-client Bereich platziert, wodurch SetParent_ schonmal wegfällt.
Re: Fenster Animation
hab nur das olle XP, da geht aber folgendes.
Das Sklavenfenster erscheint erst wenn die dürre XP-windowanimation fertig ist
weiß aber nicht ob es Deinen anspruchsvollen Zielen genügt.
Das Sklavenfenster erscheint erst wenn die dürre XP-windowanimation fertig ist
weiß aber nicht ob es Deinen anspruchsvollen Zielen genügt.
Code: Alles auswählen
Procedure WinCallback(hWnd, uMsg, wParam, lParam)
; Windows füllt die Parameter automatisch, welche wir im Callback verwenden...
If uMsg = #WM_SIZE
HideWindow(1,1)
Select wParam
Case #SIZE_MINIMIZED
Debug "Fenster wurde minimiert"
Case #SIZE_RESTORED
Debug "Fenster wurde wiederhergestellt"
HideWindow(1,0)
Case #SIZE_MAXIMIZED
Debug "Fenster wurde maximiert"
EndSelect
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
OpenWindow(0,0,0,400,400,"master",#PB_Window_Invisible|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
SetWindowCallback(@WinCallback()) ; Callback aktivieren
OpenWindow(1,10,10,200,200,"slave",#PB_Window_Invisible|#PB_Window_Tool|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
StickyWindow(1,1)
HideWindow(0,0)
HideWindow(1,0)
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
End
pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Re: Fenster Animation
Habe es selbst so (naja, etwas komplizierter
) gelöst. Allerdings muss vor dem Anzeigen ein 300 ms Delay rein, denn die Nachricht tritt direkt beim maximieren auf, während das Fenster noch fluppt.
Die korrekten Nachrichten zu erwischen war etwas happig, da mit Debugger und mit MessageRequester völlig verschiedene Werte kamen. ^^
Dennoch wäre ein natives anheften hübscher! 
Die korrekten Nachrichten zu erwischen war etwas happig, da mit Debugger und mit MessageRequester völlig verschiedene Werte kamen. ^^
Code: Alles auswählen
Select msg
Case #WM_WINDOWPOSCHANGED
Select lParam
Case 1638132
; Verstecken
Case 1636796
Delay(300)
; Anzeigen
EndSelect
EndSelect