Seite 1 von 1
Window permanent machen
Verfasst: 05.03.2006 03:27
von KeyKon
Sorry mir is einfach kein besserere Titel eingefallen

Naja es is spät...
Wie kann ich es anstellen das ich nurnoch ein Window in meinem Programm benutzen kann (So wie z.B. der MessageRequester)?
KeyKon
Verfasst: 05.03.2006 09:01
von Macros
Mit GetForegroundWindow_()
die Id des Vordergrungfensters ermitteln, und mit den ID der offenen
Fenster vergleichen. wenn die Id gleich der eines Fensters aus deinem Programm (und ungleich der des einen), führe einmalig
SetWindowPos_(WindowID(1),#HWND_TOPMOST,0,0,0,0,#SWP_NOMOVE|#SWP_NOSIZE)
wobei du für 1 die nummer deines Fensters einsetzt aus.
Verfasst: 05.03.2006 17:11
von KeyKon
thx
So hab ich mir das vorgestellt!
KeyKon
Verfasst: 05.03.2006 19:01
von nco2k
ich glaub du suchst eher sowas:
Code: Alles auswählen
#WindowA = 0
#WindowB = 1
#ButtonA = 0
#ButtonB = 1
Procedure Open_WindowB()
If OpenWindow(#WindowB, 0, 0, 480, 360, #PB_Window_SystemMenu | #PB_Window_WindowCentered, "Window B", WindowID(#WindowA)) And CreateGadgetList(WindowID(#WindowB))
ButtonGadget(#ButtonB, 10, 10, 100, 25, "Close Window B")
DisableWindow(#WindowA, #True)
SetActiveWindow(#WindowB)
ProcedureReturn #True
EndIf
MessageRequester("Error", "Could not open Window B", #MB_ICONERROR)
ProcedureReturn #False
EndProcedure
Procedure Close_WindowB()
CloseWindow(#WindowB)
DisableWindow(#WindowA, #False)
SetActiveWindow(#WindowA)
EndProcedure
Procedure Event_WindowB(Event.l)
Select Event
Case #PB_Event_Gadget
If EventGadget() = #ButtonB
Close_WindowB()
EndIf
Case #PB_Event_CloseWindow
Close_WindowB()
EndSelect
EndProcedure
Procedure Open_WindowA()
If OpenWindow(#WindowA, 0, 0, 640, 480, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Window A") And CreateGadgetList(WindowID(#WindowA))
ButtonGadget(#ButtonA, 10, 10, 100, 25, "Open Window B")
ProcedureReturn #True
EndIf
MessageRequester("Error", "Could not open Window A", #MB_ICONERROR)
ProcedureReturn #False
EndProcedure
Procedure Close_WindowA()
End
EndProcedure
Procedure Event_WindowA(Event.l)
Select Event
Case #PB_Event_Gadget
If EventGadget() = #ButtonA
Open_WindowB()
EndIf
Case #PB_Event_CloseWindow
Close_WindowA()
EndSelect
EndProcedure
If Open_WindowA()
Repeat
Event.l = WaitWindowEvent()
If Event
Select EventWindow()
Case #WindowA
Event_WindowA(Event)
Case #WindowB
Event_WindowB(Event)
EndSelect
EndIf
ForEver
EndIf
End
c ya,
nco2k
Verfasst: 05.03.2006 21:17
von KeyKon
Nö, mir reicht das von Makros vollkommen, trotzdem danke!
KeYKon
Verfasst: 05.03.2006 21:43
von Macros
Freut mich, dass ich helfen konnte
MfG Macros