Intercepter #EN_CHANGE
Publié : ven. 13/mai/2005 17:20
Avec un editorgadget, comment puis je intercepter un #EN_CHANGE (cad une modification du contenu de l'editorgadget) sans callback ?
Code : Tout sélectionner
If OpenWindow(0, 100, 200, 195, 260, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget, "PureBasic Window")=0:End:EndIf
If CreateGadgetList(WindowID())=0:End:EndIf
EditorGadget(0, 0, 0, WindowWidth(), WindowHeight())
SendMessage_(GadgetID(0), #EM_SETEVENTMASK, 0, #ENM_CHANGE|SendMessage_(GadgetID(0), #EM_GETEVENTMASK, 0, 0))
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
If EventwParam()>>16=#EN_CHANGE
Debug "Changed!"
EndIf
EndIf
Until EventID=#PB_Event_CloseWindow
End
Code : Tout sélectionner
If OpenWindow(0, 100, 200, 400, 260, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget, "PureBasic Window")=0:End:EndIf
If CreateGadgetList(WindowID())=0:End:EndIf
EditorGadget(1, 0, 0, 200, WindowHeight())
EditorGadget(2, 200, 0, 200, WindowHeight())
SendMessage_(GadgetID(1), #EM_SETEVENTMASK, 0, #ENM_CHANGE|SendMessage_(GadgetID(1), #EM_GETEVENTMASK, 0, 0))
SendMessage_(GadgetID(2), #EM_SETEVENTMASK, 0, #ENM_CHANGE|SendMessage_(GadgetID(2), #EM_GETEVENTMASK, 0, 0))
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
If EventwParam()>>16=#EN_CHANGE
If EventwParam() & $FFFF = 1
Debug "Change sur 1"
ElseIf EventwParam() & $FFFF = 2
Debug "Change sur 2"
EndIf
EndIf
EndIf
Until EventID=#PB_Event_CloseWindow
End
Code : Tout sélectionner
If OpenWindow(0, 100, 200, 400, 260, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget, "PureBasic Window")=0:End:EndIf
If CreateGadgetList(WindowID(0))=0:End:EndIf
EditorGadget(1, 0, 0, 200, WindowHeight(0))
EditorGadget(2, 200, 0, 200, WindowHeight(0))
SendMessage_(GadgetID(1), #EM_SETEVENTMASK, 0, #ENM_CHANGE|SendMessage_(GadgetID(1), #EM_GETEVENTMASK, 0, 0))
SendMessage_(GadgetID(2), #EM_SETEVENTMASK, 0, #ENM_CHANGE|SendMessage_(GadgetID(2), #EM_GETEVENTMASK, 0, 0))
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
If EventwParam()>>16=#EN_CHANGE
If EventwParam() & $FFFF = 1
Debug "Change sur 1"
ElseIf EventwParam() & $FFFF = 2
Debug "Change sur 2"
EndIf
EndIf
EndIf
Until EventID=#PB_Event_CloseWindow
End