Abfrage von Maus(position) bei OpenWindowedScreen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von Delle »

Hallo,

irgendwie verwirrt mich das Beispiel zu OpenWindowedScreen() bischen :-/

Wie frage ich da z.B. den Klick der rechten Maustaste ab bzw. die aktuelle Mausposition?

Irgendwie kommt doch hier 2D und 3D durcheinander oder nicht?

Code: Alles auswählen

If InitSprite()=0 Or InitKeyboard()=0 Or InitMouse()=0:MessageRequester("Error","Can't open the sprite system",0):End:EndIf

 OpenWindow(0, 0, 0, 335, 477, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
 OpenWindowedScreen(WindowID(0), 0, 0, 335, 477, 0, 0, 0)
 
    ReleaseMouse(1)
    
    ;Load Sprites
    
   Repeat
      
      ExamineKeyboard():ExamineMouse()
      
      Repeat

        Event = WindowEvent()
        
        Select Event
          Case #PB_Event_CloseWindow
            Quit = 1
          Case #PB_Event_LeftClick
            MessageRequester("",Str(MouseX()))
        EndSelect
        
      Until Event = 0
      
      If MouseButton(2):End:EndIf
           
      ClearScreen(RGB(0,0,0))
      
      ; Display Sprites

      FlipBuffers()
    
Until Quit Or KeyboardReleased(#PB_Key_Escape)
MouseX() liefert immer 0 und MouseButton(2) wird vollkommen ignoriert.

Werden etwa alle Abfragen bereits in der WindowEvent-Schleife abgfangen?

Danke,
Delle
PB 6.21 | Win 11
Benutzeravatar
Imhotheb
Beiträge: 192
Registriert: 10.10.2014 13:14
Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
Wohnort: Wolfenbüttel

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von Imhotheb »

Delle hat geschrieben:ReleaseMouse(1)
mit ReleaseMouse(0) geht es ... warum kann ich dir nicht sagen :lamer:
weil einfach einfach einfach ist ... mach' ich es anders
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von ts-soft »

Weil mit ReleaseMouse(0) die Maus gefangen und von PB genutzt wird. Mit ReleaseMouse(1) wird sie ans OS freigegeben.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von Delle »

ts-soft hat geschrieben:Weil mit ReleaseMouse(0) die Maus gefangen und von PB genutzt wird. Mit ReleaseMouse(1) wird sie ans OS freigegeben.
Hm... die Maus soll aber auf dem Screen zu sehen sein... also klammer ich ReleaseMouse aus und verwende stattdessen ein Sprite an der Mausposition?!?
PB 6.21 | Win 11
Benutzeravatar
Imhotheb
Beiträge: 192
Registriert: 10.10.2014 13:14
Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
Wohnort: Wolfenbüttel

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von Imhotheb »

ts-soft hat geschrieben:Weil mit ReleaseMouse(0) die Maus gefangen und von PB genutzt wird. Mit ReleaseMouse(1) wird sie ans OS freigegeben.
ein Hinweis darüber in der Hilfe wäre durchaus ... ähhhmmm ... hilfreich :roll:

EDIT: damit meine ich das PB die Maus nur "gefangen" abfragen kann
weil einfach einfach einfach ist ... mach' ich es anders
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von ts-soft »

Eigentlich steht das Alles in der Hilfe: http://www.purebasic.com/german/documen ... mouse.html
und es läßt sich auch entnehmen wofür das ganze sein soll (IsScreenActive()).

Also, wenn jemand den Screen verlassen möchte (z.B. Alt-Tab in Windows) so sollte man die Mouse freigeben,
ansonsten fuchtelt derjenige da sinnlos auf dem Bildschirm rum.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von Delle »

Aber wieso kann man die Maus nicht einfach "normal" benutzen wie auf einem "normalen" PB-Fenster?
PB 6.21 | Win 11
Benutzeravatar
Imhotheb
Beiträge: 192
Registriert: 10.10.2014 13:14
Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
Wohnort: Wolfenbüttel

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von Imhotheb »

PB-Hilfe hat geschrieben:Blockiert ("locked") die Maus oder gibt sie zur Benutzung unter dem Standard-OS frei. Dies geschieht typischerweise nach Überprüfung des Ergebnisses von IsScreenActive().
Meiner Ansicht nach hat das einfangen der Maus nichts damit zu tun ob die Koordinaten abgefragt werden können. Muss man sich einfach "dazudenken" :lol:
Delle hat geschrieben:Aber wieso kann man die Maus nicht einfach "normal" benutzen wie auf einem "normalen" PB-Fenster?
Würde mich auch interessieren ... aber hat wohl mit den "internen" Routinen zu tun
weil einfach einfach einfach ist ... mach' ich es anders
Benutzeravatar
Imhotheb
Beiträge: 192
Registriert: 10.10.2014 13:14
Computerausstattung: Intel 8086, 640 KB RAM, Hercules Video Adapter, 2 x 5 1/4" 360kb Floppy, MS-DOS 3
Wohnort: Wolfenbüttel

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von Imhotheb »

vielleicht ist CanvasGadget eher etwas für dich?
weil einfach einfach einfach ist ... mach' ich es anders
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Abfrage von Maus(position) bei OpenWindowedScreen

Beitrag von ts-soft »

Steht schon wieder in der Hilfe, will die keiner Öffnen? :lol:
Die Mouselib verwendet auf Screens unter z.B. Windows, DirectX und ist LowLevel.
Es werden also ganz andere Routinen, viel schneller und genauer, genutzt!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten