Hallo zusammen,
mich quält schon seit Tagen des Testens und Suchens die Frage, ob es möglich ist, einzelne ListViewItems zu deaktivieren oder nicht. In der Hilfe steht das nicht genau drin, lediglich bei GUICtrlSetState steht, daß ein ListViewItem veränderbar ist, wenn man beim ListView $LVS_EX_CHECKBOXES verwendet. Davon abgesehen, daß ich keine CheckBoxen möchte, funktioniert das aber auch nicht.
Folgend ein stark eingekürzter Code mit dem Versuch, $item3 zu deaktivieren.
Spoiler anzeigen
#include <GUIConstants.au3>
#include <GUIListView.au3>
#include <WindowsConstants.au3>
Func GuiExit()
Exit
EndFunc
Func WM_Notify_DoubleClick($hWndGUI, $MsgID, $wParam, $lParam)
Local $tagNMHDR, $event
$tagNMHDR = DllStructCreate('int;int;int', $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
If $event = $NM_DBLCLK AND $wParam = $listview AND _GUICtrlListView_GetSelectedCount($listview) = 1 Then
MsgBox(64, 'Info', '-> ' & _GUICtrlListView_GetItemText($listview, _GUICtrlListView_GetSelectionMark($listview)))
EndIf
EndFunc
Opt('GUIOnEventMode', 1)
Opt('GUICloseOnESC', 0)
GUICreate('listview', 220, 170)
[/autoit] [autoit][/autoit] [autoit]Local $listview = GUICtrlCreateListView('value1', 10, 10, 200, 150, -1) ;, $LVS_EX_CHECKBOXES)
Local $item1 = GUICtrlCreateListViewItem('item1', $listview)
Local $item2 = GUICtrlCreateListViewItem('item2', $listview)
Local $item3 = GUICtrlCreateListViewItem('item3', $listview)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetOnEvent($GUI_EVENT_CLOSE, 'GuiExit')
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, 'WM_Notify_DoubleClick')
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(20)
WEnd
Es würde mich freuen, wenn mir einer von Euch einen Tip geben kann, oder zumindestens bestätigt, daß sowas nicht möglich ist.
Gruß
vurman