Bug PB V 5.11 #WM_LBUTTONUP /#WM_RBUTTONUP [ok Solved]
Posted: Fri Apr 26, 2013 11:00 am
looseness of the left button / right / middle mouse
is no longer recognized by PureBasic
use constants: # WM_LBUTTONUP / # WM_RBUTTONUP
does not seem to make their effects
is no longer recognized by PureBasic
use constants: # WM_LBUTTONUP / # WM_RBUTTONUP
does not seem to make their effects
le relachement des bouton gauche/droite de la souris n'est plus reconnu en V5.11
les constantes # WM_LBUTTONUP / # WM_RBUTTONUP et peut etre #WM_MBUTTONUP
ne semble plus repondre
Code: Select all
; Auteur : Le Soldat Inconnu, Fred
; Version de PB : 3.90
;
; Explication du programme :
; Détection des différents état de la souris - Appuyer sur le bouton gauche, relacher le bouton gauche, double clic, etc ...
#WM_MOUSEWHEEL = $20A
#WHEEL_DELTA = 120
#text=1
If OpenWindow(0, 0, 0, 200, 200, "Souris",#PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
SetClassLong_(WindowID(0), #GCL_STYLE, GetClassLong_(WindowID(0), #GCL_STYLE) | #CS_DBLCLKS) ; Active la gestion du double clic
CreateImage(0, 200, 100)
StartDrawing(ImageOutput(0))
DrawingMode(1)
FrontColor(RGB(255, 255, 255))
DrawText(5,5,"Marche pas sur l'image :")
DrawText(5,20,"Bouton gauche appuyé")
DrawText(5,35,"Double clic gauche")
StopDrawing()
ImageGadget(0, 0, 0, 200, 100, ImageID(0))
SetWindowLong_(GadgetID(0), #GWL_STYLE, GetWindowLong_(GadgetID(0), #GWL_STYLE) & ~#SS_NOTIFY)
TextGadget(#text, 1, 150, 200, 50, "appuis touche souris")
Repeat
Event = WaitWindowEvent()
If Event = #WM_LBUTTONDOWN
SetGadgetText(#text, "Bouton gauche appuyé")
ElseIf Event = #WM_LBUTTONUP
SetGadgetText(#text,"Bouton gauche relaché") ; < ------------------------- Bug !!! no effect
ElseIf Event = #WM_LBUTTONDBLCLK
SetGadgetText(#text,"Double clic gauche")
ElseIf Event = #WM_RBUTTONDOWN
SetGadgetText(#text,"Bouton droit appuyé")
ElseIf Event = #WM_RBUTTONUP
SetGadgetText(#text,"Bouton droit relaché") ; < ------------------------- Bug !!! no effect
ElseIf Event = #WM_RBUTTONDBLCLK
SetGadgetText(#text,"Double clic droit")
ElseIf Event = #WM_MBUTTONDOWN
SetGadgetText(#text,"Bouton du milieu appuyé")
ElseIf Event = #WM_MBUTTONUP
SetGadgetText(#text,"Bouton du milieu relaché")
ElseIf Event = #WM_MBUTTONDBLCLK
SetGadgetText(#text,"Double clic du milieu")
ElseIf Event = #WM_MOUSEWHEEL
Molette.l = -(EventwParam() >> 16) / #WHEEL_DELTA
If Molette > 0
SetGadgetText(#text,"Molette en avant de " + Str(Molette))
ElseIf Molette < 0
SetGadgetText(#text,"Molette en arrière de " + Str(Molette))
EndIf
ElseIf Event = #PB_Event_Gadget
Select EventGadget()
Case 0
Select EventType()
Case #PB_EventType_LeftClick
SetGadgetText(#text,"Gadget : Bouton gauche appuyé")
Case #PB_EventType_LeftDoubleClick
SetGadgetText(#text,"Gadget : Double clic gauche")
EndSelect
EndSelect
EndIf
Until Event = #WM_CLOSE
EndIf