Fenster in Vordergrund geholt, verschwindet Requester

Für allgemeine Fragen zur Programmierung mit PureBasic.
JoJo
Beiträge: 9
Registriert: 20.09.2004 11:12
Kontaktdaten:

Fenster in Vordergrund geholt, verschwindet Requester

Beitrag von JoJo »

Hallo,

Mein Programm besteht aus mehreren Fenstern. Nur das Hauptfenster wird in der Window Taskbar angezeigt. Klicke ich auf diesen Eintrag in der Taskbar, wird das immer zuletzt wirklich aktive Fenster (z.B. ein Einstellungsdialog) in den Vordergrund gebracht.

Hier der Code dazu

Code: Alles auswählen

SetForegroundWindow_(WindowID(ActiveWindow))
ShowWindow_(WindowID(ActiveWindow),#SW_SHOWMAXIMIZED)
UseWindow(ActiveWindow)
ActiveWindow enthält immer den Handler des zuletzt wirklich aktiven Fensters.

Das Problem entsteht, wenn ich in einem Fenster (z.B. dem Einstellungsdialog) einen Requester, wie z.B. den InputRequester aufgerufen habe, auf ein anderen Programm schalte und dann wieder mein Programm durch Klicken auf den Eintrag in der Taskbar aktiviere. Es erscheint das Hauptfenster, dann das wirklich aktive Fenster, aber der Requester bleibt verborgen und ich kann das ganze Programm nur mehr mit dem Windows Task Manager abschiessen.

Ich hoffe, Ihr könnt mir weiterhelfen.

mfg.

Johannes
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Code: Alles auswählen

SetForegroundWindow_(WindowID(ActiveWindow)) 
Ich denke das du es damit selbst vor den requester packst.
Purebasic 5.0 32bit und 64 bit

I'm back from hell
JoJo
Beiträge: 9
Registriert: 20.09.2004 11:12
Kontaktdaten:

Fenster in Vordergrund geholt, verschwindet Requester

Beitrag von JoJo »

Hallo,

Das kann natürlich sein, aber ich muss das zuletzt aktive Fenster irgendwie wieder in den Vordergrund schicken, wenn es der User so will.

mfg.

Johannes
Benutzeravatar
PBZecke
Beiträge: 399
Registriert: 02.09.2004 17:34

Beitrag von PBZecke »

Du solltest grundsätzlich Fenster wie Einstelldialoge modal machen. Damit
meine ich immer das Parentwindow mit DisableWindow() deaktivieren.
Auf diese Weise sollten dann solche Probleme gar nicht erst auftauchen.
Nein, ich habe die Suche nicht benutzt, und deshalb auch nichts dazu gefunden... :lol:
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Fenster in Vordergrund geholt, verschwindet Requester

Beitrag von Kiffi »

@JoJo:

Wenn Du beispielsweise ein Hauptfenster hast und darin einen
Einstellungsdialog aufrufen möchtest, dann kannst Du Dir mal den
Parameter 'ParentID' bei OpenWindow() anschauen. Beispielsweise mit
folgendem Code ist es nicht nötig, den Einstellungsdialog mit
SetForegroundWindow_() in den Vordergrund zu holen, weil er durch die
Angabe von ParentID immer vor dem Hauptfenster liegt:

Code: Alles auswählen

Enumeration
  #Hauptfenster
  #Options
EndEnumeration

OpenWindow(#Hauptfenster,#PB_Ignore,#PB_Ignore,500,500,"Hauptfenster",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)

OpenWindow(#Options,#PB_Ignore,#PB_Ignore,200,200,"Options",#PB_Window_ScreenCentered|#PB_Window_SystemMenu,WindowID(#Hauptfenster) 

Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Grüße ... Kiffi
Antworten