Vernünftige Mausabfrage im Windowed-Screen
-
- Beiträge: 63
- Registriert: 25.12.2009 18:48
Vernünftige Mausabfrage im Windowed-Screen
Hallo,
Wie kriegt man eine gute Mausabfrage im Windowed-Screen hin. Die Frage bezieht sich vor allem auf die Maus-Klicks.
Wenn man im WindowedScreeen "ExamineMouse()" aufruft, steht die Maus ja nicht mal mehr außerhalb des Spiels zu Verfügung. Also man kann die Maus nicht mehr aus dem WindowedScreen bewegen.
Die Maus-Koordinaten sind ja leicht abzufragen mit "WindowMouseX()" und "WindowMouseY()" - aber Maus-Klicks gehen ja nur über Gadgets abzufragen. Ich will sie aber "im freien Bildschirm" abfragen die Maus-Klicks.
Wie geht das? Wie macht ihr das?
Danke im Vorraus,
NathanielBlack
Wie kriegt man eine gute Mausabfrage im Windowed-Screen hin. Die Frage bezieht sich vor allem auf die Maus-Klicks.
Wenn man im WindowedScreeen "ExamineMouse()" aufruft, steht die Maus ja nicht mal mehr außerhalb des Spiels zu Verfügung. Also man kann die Maus nicht mehr aus dem WindowedScreen bewegen.
Die Maus-Koordinaten sind ja leicht abzufragen mit "WindowMouseX()" und "WindowMouseY()" - aber Maus-Klicks gehen ja nur über Gadgets abzufragen. Ich will sie aber "im freien Bildschirm" abfragen die Maus-Klicks.
Wie geht das? Wie macht ihr das?
Danke im Vorraus,
NathanielBlack
- darius676
- Beiträge: 512
- Registriert: 08.03.2010 22:12
- Computerausstattung: Intel i5 16GB RAM nVidia 1050, Win11
Atari Jaguar, Surface Pro 5,Surface Laptop i5 7200, XBOX ONE X, XBOX Series X - Wohnort: AT
- Kontaktdaten:
Re: Vernünftige Mausabfrage im Windowed-Screen
#WM_LBUTTONDOWN; #WM_RBUTTONDOWN...als Event abfragen.
hab da auf die schnelle ein Beispiel gefunden, ist jedoch sehr überladen.- der rote bereich beinhaltet die schlüsselwörter.
aus
http://purearea.net/pb/german/index.htm
; German forum: http://www.purebasic.fr/german/archive/ ... highlight=
; Author: zenturio (updated for PB4.00 by blbltheworm)
; Date: 07. January 2004
; OS: Windows
; Demo: No
#WM_CAPTURECHANGED=533
Procedure WndProc(hhWnd, uMsg, wParam, lParam)
Select uMsg
Case #WM_CAPTURECHANGED
Debug lParam
Debug "Mouse Capturechanged"
ProcedureReturn 0
EndSelect
ProcedureReturn DefWindowProc_(hhWnd,uMsg,wParam,lParam)
EndProcedure
hwnd = OpenWindow(1,10,10,300,300,"",#PB_Window_SystemMenu)
SetCapture_(hwnd)
SetWindowCallback(@WndProc())
Repeat
Select WaitWindowEvent()
Case #WM_LBUTTONDOWN : A$ = "Left Mouse Button pressed"
Case #WM_LBUTTONUP : A$ = "Left Mouse Button released"
Case #WM_MOUSEMOVE : A$ = "Mouse has moved"
Case #PB_Event_CloseWindow: End
EndSelect SetWindowText_(hwnd, A$):
ForEver
hab da auf die schnelle ein Beispiel gefunden, ist jedoch sehr überladen.- der rote bereich beinhaltet die schlüsselwörter.
aus
http://purearea.net/pb/german/index.htm
; German forum: http://www.purebasic.fr/german/archive/ ... highlight=
; Author: zenturio (updated for PB4.00 by blbltheworm)
; Date: 07. January 2004
; OS: Windows
; Demo: No
#WM_CAPTURECHANGED=533
Procedure WndProc(hhWnd, uMsg, wParam, lParam)
Select uMsg
Case #WM_CAPTURECHANGED
Debug lParam
Debug "Mouse Capturechanged"
ProcedureReturn 0
EndSelect
ProcedureReturn DefWindowProc_(hhWnd,uMsg,wParam,lParam)
EndProcedure
hwnd = OpenWindow(1,10,10,300,300,"",#PB_Window_SystemMenu)
SetCapture_(hwnd)
SetWindowCallback(@WndProc())
Repeat
Select WaitWindowEvent()
Case #WM_LBUTTONDOWN : A$ = "Left Mouse Button pressed"
Case #WM_LBUTTONUP : A$ = "Left Mouse Button released"
Case #WM_MOUSEMOVE : A$ = "Mouse has moved"
Case #PB_Event_CloseWindow: End
EndSelect SetWindowText_(hwnd, A$):
ForEver
-
- Beiträge: 63
- Registriert: 25.12.2009 18:48
Re: Vernünftige Mausabfrage im Windowed-Screen
Sehr nett,
danke!
Warum ist sowas eigentlich nicht in der Hilfe?
danke!
Warum ist sowas eigentlich nicht in der Hilfe?

- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Vernünftige Mausabfrage im Windowed-Screen
Das sind Windows-API-Funktionen, welche von PB unterstützt werden.
Zur Beschreibung gibt es da andere Hilfen wie win32.hlp, ApiViewer etc.
Ein Beispiel zu diesen Messages findest du z.B. hier und auch in der PB-Hilfe:
http://www.purearea.net/pb/german/manua ... lback.html
Gute Hilfen leisten die WinApi Library: http://www.rsbasic.de/ von rsbasic
der APIViewer2004 : http://www.activevb.de/rubriken/apiview ... iewer.html
als auch die winhelp32: http://www.codingcrew.de/programmierung ... hp?kat=sdk
Besonders interessant sollte es sein sich die SDK herunterzuladen und zu installieren.
Gruß Falko
Zur Beschreibung gibt es da andere Hilfen wie win32.hlp, ApiViewer etc.
Ein Beispiel zu diesen Messages findest du z.B. hier und auch in der PB-Hilfe:
http://www.purearea.net/pb/german/manua ... lback.html
Gute Hilfen leisten die WinApi Library: http://www.rsbasic.de/ von rsbasic
der APIViewer2004 : http://www.activevb.de/rubriken/apiview ... iewer.html
als auch die winhelp32: http://www.codingcrew.de/programmierung ... hp?kat=sdk
Besonders interessant sollte es sein sich die SDK herunterzuladen und zu installieren.
Gruß Falko
Re: Vernünftige Mausabfrage im Windowed-Screen
Deine Links sind leider nicht mehr aktuell. Das neue SDK gibt es hier
http://www.microsoft.com/downloads/deta ... laylang=en
http://www.microsoft.com/downloads/deta ... laylang=en
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Re: Vernünftige Mausabfrage im Windowed-Screen
Danke für den aktuelleren SDK-Link
Gruß Falko

Gruß Falko
- 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: Vernünftige Mausabfrage im Windowed-Screen
Das wichtigste zum SDK und PB fehlt natürlich: http://www.realsource.de/index.php/down ... s-?start=5
Gruß
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Vernünftige Mausabfrage im Windowed-Screen
In deinem anderen Thread habe ich einen Link gepostet.
PB 4.41 - Win XP pro
- Josef Sniatecki
- Beiträge: 657
- Registriert: 02.06.2008 21:29
- Kontaktdaten:
Re: Vernünftige Mausabfrage im Windowed-Screen
Man kann Mausklicks auch unabhängig von Fensterereignissen behandeln:
Sobald man jedoch schon mit Fensterereignissen arbeitet, ist dieser (Um)weg völlig überflüssig.
Quelle:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Gruß Josef
Code: Alles auswählen
;Buffer zurücksetzen:
GetAsyncKeyState_(#VK_LBUTTON)
GetAsyncKeyState_(#VK_ESCAPE)
;Los gehts:
Repeat
If GetAsyncKeyState_(#VK_LBUTTON) = -$7FFF
Debug "Klick!"
EndIf
Delay(1)
Until GetAsyncKeyState_(#VK_ESCAPE)
Quelle:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
D.h. falls eine Taste runter gedrückt wird und vorher durch GetAsyncKeyState kein Tastendruck realisiert wurde, erhält man den Wert "-$7FFF".If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.
Gruß Josef
PB 4.61 | Windows Vista - 32Bit
Homepage
"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Homepage
"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß