CList alle Einträge auf "nicht selektiert" setzen
-
moin
ich suche eine möglichkeit eine Cliste zu "deselektieren"
heist ich hab liste1 und liste2 wenn ich in liste 1 klicke will ich das in liste 2 nichts selektiert ist und das selbe genau anders rum ... (klicke auf 2 soll in 1 nix selektiert sein)ich hab mir was im forum rausgesucht:
HWND hWndLV = GetDlgItem(hWnd, IDC_LIST1); INT_PTR nIndex; while(-1 != (nIndex = ListView_GetNextItem(hWndLV, -1, LVNI_ALL | LVNI_SELECTED))){ ListView_SetItemState(hWndLV, nIndex, 0, LVIS_SELECTED); }
da meckert er mir aber hWnd an
error C2065: 'hWnd' : nichtdeklarierter Bezeichnervoid CLoadConfiguration::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen *pResult = 0; HWND hWndLV = GetDlgItem(hWnd, IDC_LIST1); INT_PTR nIndex; while(-1 != (nIndex = ListView_GetNextItem(hWndLV, -1, LVNI_ALL | LVNI_SELECTED))){ ListView_SetItemState(hWndLV, nIndex, 0, LVIS_SELECTED); } }
wie bekomm ich das nu hin ?
mfg LT
-
Etwa so:
CListCtrl *list=(CListCtrl *)GetDlgItem(IDC_LIST1); //statt lokales list besser Membervariable //|LVNI_SELECTED ist überflüssig while(-1 != (nIndex = list->GetNextItem(nItem, LVNI_ALL))){ list->SetItemState(nIndex, NULL, LVIS_SELECTED); }
-
Noch einfacher:
list->SetItemState(-1, NULL, LVIS_SELECTED);
http://msdn.microsoft.com/en-us/library/bb761196(VS.85).aspx
-
habs so gemacht:
for(int i = 0; i < count; i++) { m_config_sig.SetItemState(i,0,LVIS_SELECTED); }
-1 = alle elemente???
also statt dem i?noch ne frage: wie deaktiviere ich das komplette CListCtrl ???
also ich will das es sichtbar bleibt aber nicht mehr "auswählbar" ist...mfg LT
-
zu 1. Jo!
zu 2. EnableWindow
-
mist warst schneller ... hatte es auch grad gefunden
und thx