Selektion in CListCtrl setzen
-
Hallo,
ich benutze eine CListCtrl...
...ich muß nun vom Programm aus, bestimmte Item in der ListCtrl selektieren (...z.b. der User klickt auf einen Button und dann werden bestimmte oder Alle Items in der ListCtrl selektiert)....
Nur leider finde ich irgendwie keine derartige Methode...Wie geht denn das??...Ich hab nur SetSelectionMark() gefunden, aber das tut bei mir irgendwie nix und ich weiß auch nicht, was das tun soll...
Vielen Dank für jede Hilfe...
-
Nachtrag:
Ich habe im internet ein paar Beispiele gefunden....leider funktionieren die bei mir nicht - es tut sich einfach nix!....Also ich hab ne ganz einfache HelloWorld Anwendung gemacht (Dialogbasiert)
Wenn man den OK-Button klickt, werden ein paar Items zu CListCtrl hinzugefügt:
void CListExampleDlg::OnOK() { CString strText; //int nColumnCount = pmyListCtrl.GetHeaderCtrl()->GetItemCount(); // Insert 10 items in the list view control. for (int i=0;i < 10;i++) { strText.Format(TEXT("item %d"), i); // Insert the item, select every other item. pmyListCtrl.InsertItem( LVIF_TEXT|LVIF_STATE, i, strText, (i%2)==0 ? LVIS_SELECTED : 0, LVIS_SELECTED, 0, 0); /* // Initialize the text of the subitems. for (int j=1;j < nColumnCount;j++) { strText.Format(TEXT("sub-item %d %d"), i, j); pmyListCtrl.SetItemText(i, j, strText); } */ } } ************************************** Wenn man einen anderen Button klickt, so das 3.Item selektiert werden.... **************************************** void CListExampleDlg::OnButton1() { this->pmyListCtrl.EnsureVisible(3, FALSE); this->pmyListCtrl.SetSelectionMark(3); }
==> ich hab das EnsureVisible in alles Varianten ausprobiert..mal davor, mal dahinter, mal mit FALSE, mal mit TRUE...keine Änderung.... Ich hab auch im Internet Beispiele für die Methode
SetItemState( ) gefunden und ausprobiert....keine chance........ich weiß einfach nicht, woran das liegt...
-
Dann nimm doch eine CListBox mit der Methode SetSel()
DAS geht dann zumindest.
Edit:
Aja, du musst sonst noch Bei CListCtrl die Option <Einzelauswahl> deaktivieren. Dann sollte es auch mit dem Ctrl klappen.
-
maxpower24: ich hab dir die Lösung in nem anderen Forum gepostet... mache einfach setitemstate oder wie die func noch hieß(im anderen forum stehts wie se hieß ;))und dann SetFocus(); und dann EnsureVisible... das sollte helfen