Seite 1 von 1

Win aktiv oder nicht...?

Verfasst: 13.04.2006 15:19
von Kaeru Gaman
ich hab da n kleines problem.

ich will testen, ob ein fester den fokus hat, damit ich ein game, das darin abläuft,
anhalten kann, wenn der benutzer ein anderes fenster benutzt...

leider hat ein klassischer flag-schalter

Code: Alles auswählen

        WinEvent = WindowEvent()
        If WinEvent = #PB_EventType_Focus
            Focus = 1
        EndIf
        If WinEvent = #PB_EventType_LostFocus
            Focus = 0
        EndIf
nicht den gewünschten effekt...

bitte um background in sachen Fenster, kenn mich da garnich aus...
wo liegt mein denkfehler?

Verfasst: 13.04.2006 15:57
von ABBKlaus
mit PB4B10 ganz einfach :

GetActiveWindow() Gibt die PB Nummer des Fensters zurück, welches aktuell den Fokus für Tastatureingaben hat.

MfG Klaus

Verfasst: 13.04.2006 16:02
von Kaeru Gaman
> mit PB4B10 ganz einfach

thnx, aber ich benutz noch 3.94...


ich bin inzwischen so weit, dass entgegen der aussage in der help
#PB_EventType_Focus und #PB_EventType_LostFocus wohl doch nur für Gadgets gelten...

aber mit API komm ich auch nich ganz rum:

Code: Alles auswählen

If GetFocus_()<>WindowID(0)
    Focus = 0
Else
    Focus = 1
EndIf
liefert auch nicht das gewünschte ergebnis...


> welches aktuell den Fokus für Tastatureingaben hat.

schätze mal, dass "tastatur" hierbei redundant ist?
mir geht es allgemein um den fokus, denke, das ist damit doch gemeint...

Verfasst: 13.04.2006 16:16
von Green Snake
sowas? :?

Code: Alles auswählen

OpenWindow(0,0,0,100,100,"Hello",#PB_Window_SystemMenu)

Repeat
  If GetForegroundWindow_() = WindowID(0)
    Debug "Hat den Focus"
  Else
    Debug "Hat den Focus nicht."
  EndIf

  Delay(100)
Until WindowEvent() = #PB_Event_CloseWindow

edit:
Beispiel ist zwar für PB4, sollte aber keine Probleme machen, den Befehl OpenWindow() zu portieren :mrgreen:

Verfasst: 13.04.2006 16:25
von Kaeru Gaman
yo.. thnx für den Tip mit GetForgroundWindow().. muss ich auch mal antesten...

hab grad noch nen anderen käfer bemerkt.. muss erstmal den finden und sehen, obs die ganze zeit an dem lag...

@all
thnx erstmal für die hilfe..

Verfasst: 13.04.2006 17:23
von Kaeru Gaman
ok leutz... mal absolut shame on me...

Code: Alles auswählen

        If GetFocus_()<>WindowID(0) 
            Focus = 0 
        Else 
            Focus = 1 
        EndIf
funktioniert, der käfer steckte woanders...

danke für die anderen hinweise... ;)