Seite 1 von 1

neues Fenster in Vordergrund öffnen?

Verfasst: 11.06.2016 16:25
von udg
Hallo,
simpel oder nicht? ich hab mal wieder keine Ahnung.
Hab ja nun schon hunderte Fenster erstellt und geöffnet.

Mein Problem diesmal:
Ich habe mein Hauptfenster offen und möchte nun über einen Button ein 2tes Fenster anzeigen. Dieses soll natürlich über dem bereits geöffneten Fenster(davor) angezeigt werden, jedoch ohne den Befehl:

Code: Alles auswählen

#HWND_TOPMOST
Grüße

Re: neues Fenster in Vordergrund öffnen?

Verfasst: 11.06.2016 16:45
von Kiffi
SetActiveWindow()?

Grüße ... Peter

Re: neues Fenster in Vordergrund öffnen?

Verfasst: 11.06.2016 17:10
von ts-soft
Da gibt es viele Möglichkeiten, so wie Kiffi schrieb, oder z.B. so:

Code: Alles auswählen

OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "MainWindow")
ButtonGadget(0, 10, 200, 100, 30, "NewWindow")

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      If EventWindow() = 0
        End
      Else
        CloseWindow(EventWindow())
        DisableGadget(0, #False)
      EndIf
      
    Case #PB_Event_Gadget
      If EventGadget() = 0
        DisableGadget(0, #True)
        OpenWindow(1, WindowX(0) + GadgetX(0), WindowY(0) + GadgetY(0) - GadgetWidth(0), 100, 100, "NewWindow", #PB_Window_SystemMenu, WindowID(0))
      EndIf
  EndSelect
ForEver
Kommt also drauf an, was Du vorhast, damit man Dir sagen kann, was zu empfehlen wäre!

Re: neues Fenster in Vordergrund öffnen?

Verfasst: 11.06.2016 17:52
von RSBasic
Wenn du ein neues Fenster erstellst, ist dieses standardmäßig automatisch im Vordergrund bzw. hat den Fokus.
Falls das zweite Fenster dauerhaft vor dem Hauptfenster angezeigt werden soll, also auch bei Klick auf das Hauptfenster, dann benutze den optionalen Parameter "ParentID".
Beispielcode:

Code: Alles auswählen

EnableExplicit

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If OpenWindow(1, 0, 0, 300, 200, "", #PB_Window_WindowCentered, WindowID(0))
  EndIf
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf

Re: neues Fenster in Vordergrund öffnen?

Verfasst: 12.06.2016 16:22
von udg
Kiffi hat geschrieben:SetActiveWindow()?

Grüße ... Peter
:freak: natürlich hatte ich SetActiveWindow() im code aber ausversehen doppelt. Der 2te SetActiveWindow() Befehl war falsch und darum gabs die Probleme, denn er befand sich zur gleichen Zeit aktiv für das Fenster welches eigentlich in den Hintergrund sollte. Dann kanns natürlich nit gehen.

Jetzt geht es :allright:

Danke für die schnelle Hilfe