Domanda

Devo implementare il controllo degli alberi come in Process Explorer. Sono abbastanza principiante in GUI e non ho scritto controlli così complicati.

Come vedo in Process Explorer, c'è una Class TreelistWindow, che contiene bambini: 2 intestazioni, 3 barre di scorrimento (una di esse è invisibile?) E 1 statica (luogo tra le barre di scorrimento visibili). Come ho capito, il controllo principale disegna tutti gli elementi dentro di sé. Inoltre non ho trovato mfcxxx.dll in DLL allegate.

Domanda 1: quale framework è meglio usare? Ci sono: MFC, WTL, Plain winapi ... Ho dato un'occhiata a questa implementazione http://www.codeguru.com/cpp/controls/treeview/classes/article.php/c13167 ed è stato confuso con> 8000 righe di codice nel file CPP con enormi strutture (una di esse contiene 80 membri). È semplice winapi (e c senza ++). Voglio assolutamente usare lo stile OOP. =)

Domanda 2: Qual è il design di alto livello di questo controllo? Puoi spiegare senza dettagli profondi come dovrebbe essere progettato questo controllo?

I miei limiti: C ++, VS10, OS: Vista e Higher.

Grazie in anticipo

È stato utile?

Soluzione

L'ho fatto di recente e ho usato la vista sugli alberi multi-colonna da http://www.mimec.org/articles/mfc/mctree

Screenshot of Multi-Column Tree View

È abbastanza semplice, ma ha soddisfatto le mie esigenze ed è abbastanza compatto. Fornisce un CColumnTreeView Classe che è una sotto-Classe di CView - Quindi funziona correttamente con il modello CDocument/cview standard di MFC.

Altri suggerimenti

Puoi trovare l'esatto equivalente della "vista dell'elenco degli alberi" di Process Explorer da Hacker di processola fonte (che è un quantità Meglio imho.)

Qt è una libreria che offre un pienamente funzionante Qtreewidget Sembra che soddisfi i requisiti del tuo programma.
enter image description here

Devexpress ha alcuni eccellenti controlli altilisti, tuttavia sono scritti in C#. Tuttavia, puoi prenderli di mira usando C ++/CLI o gestito C ++. Quindi non sono sicuro che tu sia in grado di gestire la tua app. Quindi forse potrebbe non essere così utile.

Per quanto riguarda i controlli TREELIST gratuiti, cerco di stare lontano da loro, a causa di bug e mancanza di supporto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top