Patrick.Karre Geschrieben 10. Januar 2008 Teilen Geschrieben 10. Januar 2008 Hallo Forum, ich habe ein CListCtrl und lade darin ca. 50.000 Einträge. Leider ist der Aufbau sehr langsam und ich frage mich, ob dies Optimiert werden kann. Nachfolgend seht Ihr meinen Code, mit dem ich das CListCtrl beschreibe: // Überschrift setzen for (int i=0; i<m_strColumnName.GetCount(); ++i) m_PersonalList.InsertColumn(i, m_strColumnName[i].GetString(), LVCFMT_LEFT, 500); // int iCounter = m_strListCtrl[i].GetCount(); int iCounter = m_strColumnName.GetCount(); // Liste mit Daten laden for (int i=0; i<m_strListCtrl.GetCount(); ++i) { this->m_PersonalList.InsertItem(i, m_strListCtrl[i][0].GetString()); for (int j=0; j<m_strListCtrl[i].GetCount(); ++j) this->m_PersonalList.SetItemText(i, j, m_strListCtrl[i][j].GetString()); } Weiterhin würde ich gerne immer den ersten Satz markieren und markiert lassen, wenn der Fokus verlassen wird, aber irgendwie will das auch nicht klappen. Nachfolgend mein Code: // Erste Zeile markieren if (this->m_PersonalList.GetSelectionMark() == -1) this->m_PersonalList.SetItemState(0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); Beste Grüße aus Gießen Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 10. Januar 2008 Teilen Geschrieben 10. Januar 2008 Weiterhin würde ich gerne immer den ersten Satz markieren und markiert lassen, wenn der Fokus verlassen wird, aber irgendwie will das auch nicht klappen. Nachfolgend mein Code: // Erste Zeile markieren if (this->m_PersonalList.GetSelectionMark() == -1) this->m_PersonalList.SetItemState(0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); Beste Grüße aus Gießen Patrick Ich glaube das geht nicht so einfach, wenn der Focus verlassen wird, nützt dir das bestimmt nichts. Aber du könntest dir den Index merken und wenn das Element wieder den Focus erhält, den Eintrag markieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 10. Januar 2008 Teilen Geschrieben 10. Januar 2008 ich habe ein CListCtrl und lade darin ca. 50.000 Einträge. Leider ist der Aufbau sehr langsam und ich frage mich, ob dies Optimiert werden kann.Ja. Benutz ein virtuelles List Control. Virtual List Controls Weiterhin würde ich gerne immer den ersten Satz markieren und markiert lassen, wenn der Fokus verlassen wird, aber irgendwie will das auch nicht klappen.Die Auswahl eines List Controls wird vom Focus gar nicht beeinflusst. Allerdings zeigt das List Control seine Auswahl normalerweise nicht mehr an, wenn es den Focus verliert - es sei denn, du benutzt LVS_SHOWSELALWAYS. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Patrick.Karre Geschrieben 14. Januar 2008 Autor Teilen Geschrieben 14. Januar 2008 Hallo Zusammen, das mit der virtuellen Liste war eine Super Idee, dass CListCtrl ist jetzt richtig schnell. Danke und beste Grüße aus Gießen Patrick Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.