Ci-dessous le code source d’un petit programme me permettant de tester le CallBack. (PureBasic 6.21 (Windows - x64) sous Windows 10 22H2)
J’ai généré avec le concepteur de fenêtre une fenêtre avec une ListIconGadget. Pour des raisons de débogage, j’ai copié le code généré par le concepteur de fenêtre directement dans le source.
Je comprends de votre documentation (qui est très bien faite) que pour un Gadget comme ListIconGadget, si l’on utilise « #PB_Any » alors la valeur de retour est le numéro d'identification du gadget, généré automatiquement.
Sur la ligne 12 :
Code : Tout sélectionner
ListIcon_Test = ListIconGadget(#PB_Any, 10, 50, 570, 260, "Column 1", 100)Malheureusement le debug indique que Le ListIconGadget n’utilise pas la valeur de la variable « ListIcon_Test »
Si je transforme cette même ligne 12 en forçant le numéro d’identification du gadget :Window_Test = 1851162091264
ListIcon_Test = 1851162091488
hdr\idFrom = 0 / wParam = 0
hdr\idFrom = 31186912 / wParam = 31186912
hdr\idFrom = 31186912 / wParam = 31186912
hdr\idFrom = 31186912 / wParam = 31186912
hdr\idFrom = 31186912 / wParam = 31186912
hdr\idFrom = 0 / wParam = 0
Code : Tout sélectionner
ListIcon_Test = ListIconGadget(25, 10, 50, 570, 260, "Column 1", 100)Mais peut-être, ai-je loupé quelque chose ?Window_Test = 2428747833088
ListIcon_Test = 209974
hdr\idFrom = 0 / wParam = 0
hdr\idFrom = 25 / wParam = 25
hdr\idFrom = 25 / wParam = 25
hdr\idFrom = 25 / wParam = 25
hdr\idFrom = 25 / wParam = 25
hdr\idFrom = 0 / wParam = 0
Merci par avance pour votre retour.
Cordialement,
---> Début source
Code : Tout sélectionner
Declare.l WinCallback(hWnd, uMsg, wParam, lParam)
;XIncludeFile "Window_Test.pbf"
; *** DEBUT copie depuis le concepteur de fenêtre ***
Global Window_Test
Global ListIcon_Test
Procedure OpenWindow_Test(x = 0, y = 0, width = 600, height = 400)
Window_Test = OpenWindow(#PB_Any, x, y, width, height, "Petit test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIcon_Test = ListIconGadget(#PB_Any, 10, 50, 570, 260, "Column 1", 100)
EndProcedure
Procedure Window_Test_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
; *** FIN copie depuis le concepteur de fenêtre ***
OpenWindow_Test()
SetWindowCallback(@WinCallback()) ;, Window_Principal, #PB_Window_NoChildEvents)
Debug "Window_Test = " + Str(Window_Test)
Debug "ListIcon_Test = " + Str(ListIcon_Test)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
MessageRequester("test", "Sorti par la fenêtre !")
End
EndSelect
ForEver
End
Procedure.l WinCallback(hWnd, uMsg, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select uMsg
Case #WM_NOTIFY
*hdr.NMHDR = lParam
Debug "hdr\idFrom = " + Str(*hdr\idFrom) + " / wParam = " + Str(wParam)
EndSelect
ProcedureReturn Result
EndProcedure