CListCtrl::SetSelectionMark( int ); Funktioniert bei mir nicht
-
Hi,
ich hab eine funktion die wie folgt aussieht:void funktion(void)
{
UpdateData( TRUE ); // Daten einlesen
m_CtrlList.DeleteAllItems(); // löscht alle alten Einträge
m_CtrlList.InsertItem... // hier werden nun wider daten hineingeschrieben
m_CtrlList.SetSelectionMark( 0 ); // hier sollte das erste feld markiert werden
UpdateData( FALSE ); // Daten auslesem
}So nun wir aber leider nicht das erste feld markiert, wie so?
Ach "m_CtrlList.SetSelectionMark( 0 )" liefert -1 zurück.
Aber das auch richtig da nach "m_CtrlList.DeleteAllItems( )" nichts mehr markiert ist.
Kann das sein das da eine incompatieblietät zu UpdateData(bool) herrscht?
Oder wo könnte das Problem liegen?
-
Habs nicht ausprobiert, aber versuch mal das UpdateData(FALSE) VOR dem SetSelectionMark auszuführen.. ich hatte mal ein ähnliches Problem mit CEdit.
-
Jip,...
dachte ich mir auch schon hatte es schon ausprobiert, hilft leider auch nicht weiter...auch...:
UpdateData(FALSE);
UpdateData(true);
m_CtrlList.SetSelectionMark( 0 );
UpdateData(FALSE);
...bringt es auch nicht*verzweifel guck*
-
Nein was ich meinte, ist.. nach SetSelectionMark UpdateData gar nicht mehr auszuführen.. ich glaub das ändert sowieso nix, es ist ein unnötiger Aufruf. Tu es lkurz davor, nciht mehr danach.
-
...hatte ich auch schon ausprobiert. Hilft alles nicht.
...alles sch... *denk* ...lim.
*gr*
-
Hi!
Um eine Zeile zu markieren, muss man nicht nur SetSelectionMark(), sondern auch SetItemState() aufrufen, am besten so:
SetItemState(item,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);