Veröffentlicht 10. Januar 200817 j 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
10. Januar 200817 j 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.
10. Januar 200817 j 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.
14. Januar 200817 j Autor 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.