CMFCShellTreeCtrl bug
CMFCShellTreeCtrl bug
Trebuie sa trec recursiv printr-un tree.
CMFCShellTreeCtrl::GetChild returneaza NULL daca parintele nu este expandat.
am testat si pe vs 2010 si pe vs 2008. Ce sa fac?
CMFCShellTreeCtrl::GetChild returneaza NULL daca parintele nu este expandat.
am testat si pe vs 2010 si pe vs 2008. Ce sa fac?
Re: CMFCShellTreeCtrl bug
Probabil acest control îşi încarcă datele abia în momentul expandării nodurilor. Încearcă să expandezi nodul părinte (cu funcţia Expand şi codul TVE_EXPAND) dacă nu e expandat deja. Apoi nodul poate fi închis. Asta nu ar trebui să genereze efecte vizuale nedorite.
Din surse mai rezultă şi că prin derivarea unei clase din CMFCShellTreeCtrl ai putea încerca apelul funcţiei nedocumentate GetChildItems.
Din surse mai rezultă şi că prin derivarea unei clase din CMFCShellTreeCtrl ai putea încerca apelul funcţiei nedocumentate GetChildItems.
- cristianamarie
- Membru++
- Posts: 480
- Joined: 12 Mar 2009, 18:47
- Judet: Iaşi
- Location: Iasi
Re: CMFCShellTreeCtrl bug
Nu degeaba nu e expandat. Sa cheme Expand din cod poate avea efecte laterale (dialoage de confirmare etc.) sau sa stea enorm de mult.Viorel wrote:Probabil acest control îşi încarcă datele abia în momentul expandării nodurilor. Încearcă să expandezi nodul părinte (cu funcţia Expand şi codul TVE_EXPAND) dacă nu e expandat deja. Apoi nodul poate fi închis. Asta nu ar trebui să genereze efecte vizuale nedorite.
Din surse mai rezultă şi că prin derivarea unei clase din CMFCShellTreeCtrl ai putea încerca apelul funcţiei nedocumentate GetChildItems.
Enumerarea se face asa cum e. No children, atunci e 0. Ori nu incarci din tree (care e doar o reprezentare vizuala) si obtii de la tree ce trebuie (IEnumXXX) si il interoghezi pe ala. La fel cum in Explorer poate nodul inca nu contine nimic pina nu dai click pe +, dar poti interoga sistemul de fisiere.
Nuclear launch detected
Re: CMFCShellTreeCtrl bug
exact asta se intampla , dureaza enorm de mult.
Dau check la un folder din tree, in care trebuie sa-mi selecteze recursiv toti copiii lui.
Trebuie sa trec prin toti copii si subcopiii lui , sa le dau expand ca sa pot sa le dau check.
Are careva vreo solutie , sa -i obtin copiii fara sa-i dau expand ?
Dau check la un folder din tree, in care trebuie sa-mi selecteze recursiv toti copiii lui.
Trebuie sa trec prin toti copii si subcopiii lui , sa le dau expand ca sa pot sa le dau check.
Are careva vreo solutie , sa -i obtin copiii fara sa-i dau expand ?
- Silviu Ardelean
- Senior
- Posts: 1175
- Joined: 12 Jul 2007, 09:22
- Contact:
Re: CMFCShellTreeCtrl bug
Se pare ca problemele cu aceasta clasa sunt cunoscute si au fost rezolvate in VS 2010.
http://connect.microsoft.com/VisualStud ... s-too-slow
http://connect.microsoft.com/VisualStud ... lders-flag
http://connect.microsoft.com/VisualStud ... s-too-slow
http://connect.microsoft.com/VisualStud ... lders-flag
Re: CMFCShellTreeCtrl bug
nu stiu cum oare au fost rezolvate, ca am testat si pe un proiect facut in vs 2010 si am avut aceeasi problema.
Re: CMFCShellTreeCtrl bug
nu au fost rezolvate ,cel putin linkul 2Silviu Ardelean wrote:Se pare ca problemele cu aceasta clasa sunt cunoscute si au fost rezolvate in VS 2010.
http://connect.microsoft.com/VisualStud ... s-too-slow
http://connect.microsoft.com/VisualStud ... lders-flag
- Silviu Ardelean
- Senior
- Posts: 1175
- Joined: 12 Jul 2007, 09:22
- Contact:
Re: CMFCShellTreeCtrl bug
Daca esti sigur, atunci adauga comentarii pe pagina de la link-ul respectiv.
Re: CMFCShellTreeCtrl bug
Asta o sa fac, mersi mult.Silviu Ardelean wrote:Daca esti sigur, atunci adauga comentarii pe pagina de la link-ul respectiv.

Re: CMFCShellTreeCtrl bug
se pare ca mi-am dat seama , ca problema asta apare decat la proiectele facute in vs 2008 (cu feature pack) , convertite la vs 2010. La cele create noi in vs2010 , nu aveam problema asta