Aide et conseils concernant AutoIt et ses outils.
aulus
Niveau 7
Messages : 424 Enregistré le : lun. 25 mars 2013 19:38
Status :
Hors ligne
#1
Message
par aulus » jeu. 06 mars 2014 17:45
Bonjour,
Je souhaite utiliser une listView pour simplement afficher les résultats d'une fonction, sans donner la possibilité à l'utilisateur de cliquer sur l'un des items de l'affichage, ce qui serait inutile et dégraderait le confort de la lecture par la présence de la barre bleue.
Je sais éviter la sélection automatique à l'ouverture de la ListView par :
Je vous remercie.
Modifié en dernier par
aulus le jeu. 06 mars 2014 20:38, modifié 1 fois.
TommyDDR
Modérateur
Messages : 2128 Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status :
Hors ligne
#2
Message
par TommyDDR » jeu. 06 mars 2014 18:55
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
aulus
Niveau 7
Messages : 424 Enregistré le : lun. 25 mars 2013 19:38
Status :
Hors ligne
#3
Message
par aulus » jeu. 06 mars 2014 19:43
Merci pour votre réponse.
J'avais pensé aussi à GUI_DISABLE, mais ça ne convient pas car cette fonction empêche le fonctionnement des barres de défilement.
mikell
Spammer !
Messages : 6292 Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status :
Hors ligne
#4
Message
par mikell » jeu. 06 mars 2014 20:24
Ouala
► Afficher le texte
Code : Tout sélectionner
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
$gui = GUICreate("", 300, 250)
Local $listView = GUICtrlCreateListView("A|B|C|D|E|F|G", 25, 25, 250, 200, -1, $LVS_EX_GRIDLINES)
For $i = 0 To 20
GUICtrlCreateListViewItem("A" & $i & "|B" & $i & "|C" & $i & "|D" & $i & "|E" & $i & "|F" & $i & "|G" & $i, $listView)
Next
GUISetState()
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
Local $tNMHDR, $hWndFrom, $iCode
$tNMHDR = DllStructCreate($tagNMHDR, $lParam)
$hWndFrom = DllStructGetData($tNMHDR, "hWndFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
$hListView = GuiCtrlGetHandle($listView)
Switch $hWndFrom
Case $hListView
Switch $iCode
Case $NM_CUSTOMDRAW
Local $tCustDraw = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam)
Local $iDrawStage = DllStructGetData($tCustDraw, "dwDrawStage")
Local $iItem = DllStructGetData($tCustDraw, "dwItemSpec")
If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW
If $iDrawStage = $CDDS_ITEMPREPAINT Then
ControlListView($gui, "", $listview, "DeSelect", $iItem)
_GUICtrlListView_SetItemFocused($hListView, $iItem, false)
EndIf
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Messages : 424 Enregistré le : lun. 25 mars 2013 19:38
Status :
Hors ligne
#5
Message
par aulus » jeu. 06 mars 2014 20:37
Bonsoir,
L'affaire ne se résumait donc pas à un simple style, ou à l'action d'un ControlListView ou encore d'un GUICtrlSetState comme je le pensais.
Encore un grand merci.
mikell
Spammer !
Messages : 6292 Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status :
Hors ligne
#6
Message
par mikell » jeu. 06 mars 2014 21:45
Bah j'ai choisi cette méthode mais il y en a certainement d'autres
La plus évidente :
► Afficher le texte
Code : Tout sélectionner
#include <GuiConstantsEx.au3>
#include <ListviewConstants.au3>
$gui = GUICreate("", 300, 250)
Local $listView = GUICtrlCreateListView("A|B|C|D", 25, 25, 250, 200, -1, $LVS_EX_GRIDLINES)
For $i = 0 To 20
GUICtrlCreateListViewItem("A" & $i & "|B" & $i & "|C" & $i & "|D" & $i, $listView)
Next
$label = GUICtrlCreateLabel("", 25, 25, 220, 200)
GUICtrlSetBkColor($label, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetState($label, $GUI_ONTOP)
GUISetState()
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Messages : 424 Enregistré le : lun. 25 mars 2013 19:38
Status :
Hors ligne
#7
Message
par aulus » ven. 07 mars 2014 09:15
Bonjour,
Alors là, j'en tombe sur mon... séant ! Voilà qu'en 3 lignes l'affaire est entendue ! Admirable astuce !