Hallo,
ich möchte in einem ListView einem Element per Rechtsklick die Hintergrundfarbe ändern.
Spoiler anzeigen
Func _RightClickOnListView($hWnd, $Msg, $wParam, $lParam) ;Rechtsklick auf ein ListViewItem
Local $tNMHDR, $event, $hwndFrom, $code, $ItemText = "" , $hItem, $hSubItem
$tNMHDR = DllStructCreate($tagNMHDR, $lParam)
$hwndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
Switch $hwndFrom
Case $aHWnd[0], $aHWnd[1]
$event = DllStructGetData($tNMHDR, "Code")
If $event = $NM_RCLICK Then
$tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam)
$hItem = DllStructGetData($tInfo, "Index")
$hSubItem = DllStructGetData($tInfo, "SubItem")
$ItemText = _GUICtrlListView_GetItemText($hWndFrom, $hItem, $hSubItem)
If $ItemText <> "" Then
MsgBox(0,"",$ItemText)
_GUICtrlListView_FormattingCell($hWndFrom, $hItem, $hSubItem , 0x00FF00) ;, -1, -1, -1, -1)
EndIf
EndIf
EndSwitch
EndFunc ;==>_RightClickOnListView
Die ListView werden durch GUICtrlCreateListView() erzeugt. Es ist egal, ob ich die Elemente per
_GUICtrlListView_AddOrIns_Item() oder _GUICtrlListView_AddItem() erzeuge. Ich habe beides probiert.
Der Rechtsklick funktioniert korrekt, da ich die MsgBox jedes mal (mit entsprechedem Inhalt) angezeigt bekomme. Jedoch wird die Farbe des Elemts nicht geändert. Wo kann mein Fehler liegen?
Das Forum habe ich schon abgesucht und auch ähnliche Fragestellungen gefunden. Jedoch konnte ich in keinem Beitrag den entscheidenden Hinweis finden, so dass es bei mir funktioniert.
Gruß
(VX-)Rexx