Zic eu, e simplu si curat, nu foloseste hook-uri si alte "avioane" ca prin tot felul de codeproject-uri de pe net la care ma doare capul numai daca ma uit, nu suprascrie functii "generice" ca PreTranslateMessage si nu "redirectioneaza" mesaje si notificari de colo colo, nu ascunde metode din clasa de baza, s.a.m.d.
E inca in lucru dar asa cum e acum, cred ca-i un "skeleton" pe care se poate intelege mai bine ce si cum trebuie facut.
Descriere, pe scurt:
- Am implemetat editarea sub-itemurilor intr-un control edit; ramane de adaugat editarea cu alte controale cum ar fi cotrol date-time, etc.
- Se face sortarea pentru coloane de tip text (la un click pe headerul cloanei); in viitor voi pune si sortare dupa ate tipuri (numar, data calendaristica, etc).
- Arata cum se trateaza mesajele trimise listei (ex. LVM_INSERTCOLUMN) pentru a adauga functii custom.
- Arata cum se trateaza notificarile (ex. LVN_COLUMNCLICK)) si cum se pot "trimite" mai departe in clasele derivate: vezi handlerul si functia virtulala CListOneView::OnColumnClick.
- Grosul codului de customizare l-am mutat in clasa CListManager si poate fi refolosit in alte tipuri de liste: control (derivat din CListCtrl) si ActiveX (derivat din COleControl).