SetWindowCallback()

Syntax

SetWindowCallback(@ProcedureName() [, #Window])
Beschreibung
Nur für erfahrene Programmierer. Diese Funktion wird nur auf Microsoft Windows unterstützt.

Normale Ereignisse (Events) sollten mit den regulären Befehlen WaitWindowEvent() oder WindowEvent() verarbeitet werden.

Dieser Befehl assoziiert einen Callback ("Rückruf"), um die Ereignisse aller offenen Fenster zu verarbeiten. Alle Ereignisse werden durch diesen Callback abgefangen und können hier verarbeitet werden. Um einen Callback nur für ein bestimmtes Fenster festzulegen, kann mit dem optionalen Parameter die PB Fensternummer '#Window' übergeben werden.

Zum Entfernen/Deaktivieren eines gesetzten Callbacks rufen Sie einfach SetWindowCallback(0 [, #Window]) auf.

Warnung: Dieser Weg ist "low-level". Falsche Handhabung der Nachrichten ("Messages") im Callback kann die PB-interne Nachrichten-Verarbeitung stören.

Parameter

@ProcedureName() Die zu verwendende Callback-Prozedur. Diese muss 4 Parameter haben. Hier ist ein Beispiel-Code, wie ein Callback richtig benutzt wird:
  Procedure MyWindowCallback(WindowID, Message, wParam, lParam)
    Result = #PB_ProcessPureBasicEvents
    ;
    ; Ihr Programmcode hier
    ;
    ProcedureReturn Result
  EndProcedure
Hier sehen Sie ein lauffähiges Beispiel, welches einige Fenster-Parameter überprüft (unter Verwendung von Windows API Konstanten):
  Procedure WinCallback(hWnd, uMsg, wParam, lParam) 
    ; Windows füllt die Parameter automatisch, welche wir im Callback verwenden...
    
    If uMsg = #WM_SIZE 
      Select wParam 
        Case #SIZE_MINIMIZED 
          Debug "Fenster wurde minimiert"
        Case #SIZE_RESTORED 
          Debug "Fenster wurde wiederhergestellt"
        Case #SIZE_MAXIMIZED 
          Debug "Fenster wurde maximiert"
      EndSelect 
    EndIf 
  
    ProcedureReturn #PB_ProcessPureBasicEvents 
  EndProcedure 
  
  
  If OpenWindow(0, 0, 0, 200, 100, "Messages", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) 
    
    SetWindowCallback(@WinCallback())    ; Callback aktivieren
    
    Repeat 
      Select WaitWindowEvent() 
        Case #PB_Event_CloseWindow 
          End 
      EndSelect 
    ForEver 
    
  EndIf 
#Window (optional) Ein bestimmtes Fenster, dem der Callback zugewiesen werden soll. Sofern dieser Parameter weggelassen wird, wird der Callback für jedes Fenster aufgerufen.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Unterstützte OS

Windows

<- SetActiveWindow() - Window Inhaltsverzeichnis - SetWindowColor() ->