Suite à de multiples recherches sans trouver de solution, je tente ma chance sur ce forum.
Dans une première GUI équipée d'un listview, lorsque je clic sur le listview, je veux ouvrir une seconde GUI.
Pour détecter le clic dans le listview, j'utilise la méthode GUIRegisterMsg avec VMCOMMAND, malheureusement cette méthode me fait planter mon script à l'ouverture de la seconde GUI ( celle-ci ne se charge pas et fait planter le script).
Est-ce que quelqu’un à déjà vu ce phénomène? est-ce une limitation de l'autoit?
Mon code:
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\emili\desktop\logiciel\koda\accueil.kxf
$softinfi = GUICreate("SOFTINFI", 615, 437, 192, 124)
$ListePatient = GUICtrlCreateList("", 32, 72, 369, 305)
$Label1 = GUICtrlCreateLabel("Liste des patients de la tournée de Emilie Jacquet", 32, 32, 359, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$BTAjoutPatient = GUICtrlCreateButton("Ajouter un patient", 424, 104, 161, 41)
$BTGenerPlanning = GUICtrlCreateButton("Générer planning", 424, 160, 161, 41)
$BtVoirPlanning = GUICtrlCreateButton("Voir planning du jour", 424, 216, 161, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
liste_patient()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $BTAjoutPatient
GUI_FichePatient()
EndSwitch
WEnd
func liste_patient()
GUICtrlSetData ( $ListePatient, "TOTO")
endfunc
func liste_patient_onclick()
GUI_FichePatient()
endfunc
func GUI_FichePatient()
#Region ### START Koda GUI section ### Form=c:\users\emili\desktop\logiciel\koda\ajoutpatient.kxf
$fichepatient = GUICreate("Fiche Patient", 543, 585, 193, 125)
$Label1 = GUICtrlCreateLabel("Fiche Patient", 184, 24, 193, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
endfunc
; interception des actions sur les objets
Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
Local $nNotifyCode = _HiWord($wParam)
Local $nID = _LoWord($wParam)
Local $hCtrl = $lParam
;local Const $CBN_EDITCHANGE = 5
local Const $CBN_SELCHANGE = 1
;local Const $CBN_EDITUPDATE = 6
;local Const $LABEL_EDITCHANGE = 1024
;local Const $LABEL_EDITUPDATE = 768
Switch $nID
case $Listepatient
switch $nNotifyCode
case $CBN_SELCHANGE
liste_patient_onclick()
EndSwitch
EndSwitch
endfunc
Func _HiWord($x)
Return BitShift($x, 16)
EndFunc ;==>_HiWord
Func _LoWord($x)
Return BitAND($x, 0xFFFF)
EndFunc ;==>_LoWord
Cordialement