Window permanent machen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Window permanent machen

Beitrag von KeyKon »

Sorry mir is einfach kein besserere Titel eingefallen :freak: Naja es is spät... :coderselixir:

Wie kann ich es anstellen das ich nurnoch ein Window in meinem Programm benutzen kann (So wie z.B. der MessageRequester)?

KeyKon
(\/) (°,,,°) (\/)
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag 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.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

thx :allright:
So hab ich mir das vorgestellt!

KeyKon
(\/) (°,,,°) (\/)
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Nö, mir reicht das von Makros vollkommen, trotzdem danke!

KeYKon
(\/) (°,,,°) (\/)
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Freut mich, dass ich helfen konnte
MfG Macros
Antworten