Herausfinden wenn der Maximieren Knopf GEDRÜCKT wurde?!
Verfasst: 03.11.2004 11:17
hi folks,
ich frage mich, ist es irgendwie möglich herauszufinden, wenn jemand den maximieren knopf in der titelzeile drückt?? so daß ich die windows interne maximieren funktion übergehen kann und das fenster nicht maximiert wird beim draufdrücken, sondern was ganz anderes passieren soll. ähnlich #PB_Event_CloseWindow, aber es existiert ja leider (noch?) kein #PB_Event_MaximizeWindow.
das folgende beispiel gibt nur ein ereigniss zurück, wenn das fenster schon maximiert ist und das will ich nicht.
es ist wirklich schade, daß diese funktionen in pb fehlen. weiss jemand bescheid ob das überhaupt in plannung ist oder fred vielleicht schon daran arbeitet?? naja, warten wir auf die magische "4".
bis dahin brauche ich einen ersatz...
vielen dank im voraus!
c ya,
nco2k
ich frage mich, ist es irgendwie möglich herauszufinden, wenn jemand den maximieren knopf in der titelzeile drückt?? so daß ich die windows interne maximieren funktion übergehen kann und das fenster nicht maximiert wird beim draufdrücken, sondern was ganz anderes passieren soll. ähnlich #PB_Event_CloseWindow, aber es existiert ja leider (noch?) kein #PB_Event_MaximizeWindow.
das folgende beispiel gibt nur ein ereigniss zurück, wenn das fenster schon maximiert ist und das will ich nicht.
Code: Alles auswählen
Procedure WindowCallback(hWnd, Msg, wParam, lParam)
Select Msg
Case #WM_SIZE
Select wParam
Case #SIZE_MINIMIZED
SetGadgetText(0, "Fenster ist Minimiert!") ;<--- Ereigniss tritt erst auf, wenn das Fenster minimiert wurde und NICHT beim draufdrücken auf den Minimieren-Knopf!
Case #SIZE_MAXIMIZED
SetGadgetText(0, "Fenster ist Maximiert!") ;<--- Ereigniss tritt erst auf, wenn das Fenster maximiert wurde und NICHT beim draufdrücken auf den Maximieren-Knopf!
EndSelect
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
#Title = "Test"
If OpenWindow(0, 0, 0, 300, 200, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, #Title)
If CreateGadgetList(WindowID())
TextGadget(0, 110, 10, 100, 15, "")
ButtonGadget(1, 5, 5, 100, 25, "Beenden")
EndIf
Else
MessageRequester(#Title, "Error", #MB_OK | #MB_ICONERROR)
End
EndIf
SetWindowCallback(@WindowCallback())
Repeat
If IsIconic_(WindowID())
SetGadgetText(0, "Fenster ist Minimiert!") ;<--- Ereigniss tritt erst auf, wenn das Fenster minimiert wurde und NICHT beim draufdrücken auf den Minimieren-Knopf!
ElseIf IsZoomed_(WindowID())
SetGadgetText(0, "Fenster ist Maximiert!") ;<--- Ereigniss tritt erst auf, wenn das Fenster maximiert wurde und NICHT beim draufdrücken auf den Maximieren-Knopf!
ElseIf WindowID()
SetGadgetText(0, "Fenster ist Normal!")
Else
SetGadgetText(0, "Kein Fenster vorhanden!")
EndIf
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadgetID()
Case 1
End
EndSelect
;- Fehlende Funktionen in PB... Wie könnte man das nun vorübergehend lösen??
;Case #PB_Event_MinimizeWindow ;<--- Sowas brauche ich!
;MessageRequester(#Title, "Minimieren Knopf wurde gedrückt!")
;Case #PB_Event_MaximizeWindow ;<--- Sowas brauche ich!
;MessageRequester(#Title, "Maximieren Knopf wurde gedrückt!")
Case #PB_Event_CloseWindow
MessageRequester(#Title, "Schliessen Knopf wurde gedrückt!")
EndSelect
ForEver
Endbis dahin brauche ich einen ersatz...
vielen dank im voraus!
c ya,
nco2k