; Autor : Nico
; Message de Dr. Dri
; Pour compléter l'exemple de nico je suggère de définir le numéro de message avec
; RegisterWindowMessage_() pour éviter tout conflit possible ^^
; Réponse de Nico
; RegisterWindowMessage_() n'est nécessaire que lorque l'on envoie le message à
; plusieurs processus et ainsi garantir une valeur de message unique
; sinon il faut simplement que la valeur du message soit supérieur à #WM_USER soit 1024.
#Mon_Message = 1025
Global Fin.l
Procedure.l Thread(Window.l)
Static a
Repeat
a = a + 1
SendMessage_(Window, #Mon_Message, a, 0)
Delay(1000)
Until Fin = 1
EndProcedure
ProcedureDLL.l Information(Window.l)
CreateThread(@Thread(), Window.l)
EndProcedure
ProcedureDLL.l Fin_Information()
Fin = 1
EndProcedure
Procedure Callback(WindowID, Message, wParam, lParam)
Resultat = #PB_ProcessPureBasicEvents
Select Message
Case #Mon_Message
SetGadgetText(0, Str(wParam))
EndSelect
ProcedureReturn Resultat
EndProcedure
If OpenWindow(0, 0, 0, 220, 200, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowCallback(@Callback())
CreateGadgetList(WindowID(0))
TextGadget(0, 10, 10, 200, 20, "", #PB_Text_Border)
ButtonGadget(1, 10, 40, 200, 20, "Recevoir des informations")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Information(WindowID(0))
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until quit = 1
Fin_Information()
EndIf