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 Bezeichner

    void 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);         
        }
    

  • Mod

    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


  • Mod

    zu 1. Jo!
    zu 2. EnableWindow



  • 🙂 mist warst schneller ... hatte es auch grad gefunden
    und thx


Anmelden zum Antworten