Mausradtest

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Donald
Beiträge: 307
Registriert: 03.01.2005 02:21
Wohnort: Marl

Mausradtest

Beitrag von Donald »

Hi,
beim Versuch eine Abfrage bezüglich des Mausrades hinzubekommen
ist folgendes entstanden.
Vielleicht könntet Ihr mal testen ob es bei euch auch funktioniert.

Code: Alles auswählen

;
; Mausradtest by Donald
; 08.09.2009 mit PB4.31
;
Procedure WindowCallBack(hwnd, uMsg, wParam, lParam)
  Select (wParam >> 16) & $FFFF
    Case 120
      StatusBarText(0, 0, "Rad wurde nach VOR gedreht")
    Case 65416
      StatusBarText(0, 0, "Rad wurde nach ZURÜCK gedreht")
  EndSelect
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

If OpenWindow(0,0,0,200,200,"Mausradtest",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  If CreateStatusBar(0,WindowID(0))
    AddStatusBarField(200)
    StatusBarText(0, 0, "Drehe mal am Mausrad !")
  EndIf
EndIf

SetWindowCallback(@WindowCallBack())

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

End
Gruß Donald
Zuletzt geändert von Donald am 08.09.2009 15:10, insgesamt 1-mal geändert.
DONALD :D www.PureBasic-Donald.de gibt es im Moment nicht mehr
PureBasic - jaPBe - PureVisonXP - TailBite
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hm...
funktioniert bei mir nicht so richtig, das Rad meiner Maus reagiert nicht.
hier das Beweisfoto: http://tinyurl.com/kuyqdd

mach ich was falsch?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Kaeru Gaman hat geschrieben:hm...
funktioniert bei mir nicht so richtig, das Rad meiner Maus reagiert nicht.
hier das Beweisfoto: http://tinyurl.com/kuyqdd

mach ich was falsch?
Witzbold.

@Donald
Funktioniert tadellos.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
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:

Beitrag von Falko »

Mausrad funktioniert bei mir auch prima unter X86 und X64 PB4.4 beta.
Nur das Event für Windows schließen ist überflüssig weil der Schließbutton nicht existiert.
Ich habe bei mir den Parameter #PB_Window_SystemMenu hinzugefügt.
Ansonsten kann man das Windows mit <Alt><F4> beenden. :allright:


Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
Donald
Beiträge: 307
Registriert: 03.01.2005 02:21
Wohnort: Marl

Beitrag von Donald »

Hi,

@Falko
habs oben geändert.

Gruß Donald
DONALD :D www.PureBasic-Donald.de gibt es im Moment nicht mehr
PureBasic - jaPBe - PureVisonXP - TailBite
Little John

Beitrag von Little John »

Funktioniert gut hier (PB 4.31 unter Windows XP Pro), danke!

So kommt noch mehr Bewegung in die Demonstration:

Code: Alles auswählen

Procedure WindowCallBack(hwnd, uMsg, wParam, lParam)
  Static count

  Select (wParam >> 16) & $FFFF
    Case 120
      count + 1
      StatusBarText(0, 0, Str(count))
    Case 65416
      count - 1
      StatusBarText(0, 0, Str(count))
  EndSelect
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Gruß, Little John
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Gibt es einen Grund warum du die Konstanten dafuer nicht nutzt?
Benutzeravatar
HeX0R
Beiträge: 3054
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Das geht auch ohne Callback

Code: Alles auswählen

#WHEEL_DELTA = 120

OpenWindow(0, 0, 0, 200, 200, "Mausradtest", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateStatusBar(0, WindowID(0))
AddStatusBarField(200)
StatusBarText(0, 0, "Drehe mal am Mausrad !")

Repeat
	Select WaitWindowEvent()
		Case #PB_Event_CloseWindow
			Break
		Case #WM_MOUSEWHEEL
			wparam = EventwParam() >> 16
			If wparam = - #WHEEL_DELTA
				StatusBarText(0, 0, "Rad wurde ZURÜCK gedreht")
			ElseIf wparam = #WHEEL_DELTA
				StatusBarText(0, 0, "Rad wurde VOR gedreht")
			EndIf
	EndSelect
ForEver
Antworten