Bonjour Mikell,
Ma listView affiche les lignes d'une base SQLite, et à son ouverture, par je ne sais quel mystère, c'est toujours la ligne 12 qui est surlignée. Ce n'est pas grave pour le fonctionnement du programme, mais c'est agaçant et déroutant pour l'utilisateur. J'essaie depuis des heures à faire en sorte que la ligne sélectionnée à l'ouverture soit la première ligne en utilisant la fonction :
ou :
ou encore :
Quelle que soit la fonction utilisée, elle est toujours ignorée alors que toutes fonctionnent parfaitement dans les exemples de l'aide d'AutoIt.
J'en ai conclu que c'est l'appel à la fonction Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) qui me met le bazar.
Code : Tout sélectionner
;affichage de la listview
For $i = 1 to UBound($array)-1
GUICtrlCreateListViewItem($array[$i][0], $myListView)
Next
_GUICtrlListView_SetItemSelected($myListView, 0, True, True) ;[color=#FF0000] CETTE LIGNE EST IGNOREE PAR LE PROGRAMME[/color]
GUICtrlSetState($myListView, $GUI_ENABLE)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
...
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam ; pour éviter les warning
Local $tNMHDR, $hWndFrom, $iCode, $iDeleteItem
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = DllStructGetData($tNMHDR, "hWndFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Local $hListView = GuiCtrlGetHandle($myListView)
Switch $hWndFrom
Case $hListView
Switch $iCode
Case $LVN_COLUMNCLICK
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
Local $colonne = DllStructGetData($tInfo, "SubItem")
If $colonne = $lastclicked Then
$var = not $var
Else
$var = 0
EndIf
$lastclicked = $colonne
_LVSort($colonne, $var)
Case $LVN_KEYDOWN
$tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
Local $vkey = DllStructGetData($tInfo, "VKey")
Switch $vkey
Case 0x2e
Suppression()
Case 0x2D
Ajout()
Case 0x08
Modification()
Case 0x20
Affichage()
EndSwitch
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc
J'ai tenté de placer mes fonctions en début ou en fin de la fonction WM_NOTIFY. Les fonctions ne sont pas ignorées mais me plantent le programme.