Comment créer une liste multicolonne?
Je suis en train de travailler sur un programme, qui devrait liste de tous les fichiers et il est de taille(pour l'instant...). J'ai créé une application simple, qui doit écrire les données dans un contrôle listbox. Je suis en train d'écrire les données dans deux colonnes(le premier doit être le nom, et à côté, dans une autre colonne, il est de taille), mais je ne peux pas comprendre, comment dois-je faire.
Quelqu'un peut-il m'aider?
Merci d'avance!
kampi
Mise à jour:
J'essaie d'utiliser ListControl., mais malheureusement je ne peux pas. Je peux réussir à compiler mon Application, mais je ne peux le voir, le rectangle vide. Quelqu'un sait ce que je fais de mal?
BOOL CGetFileListDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); //Set big icon
SetIcon(m_hIcon, FALSE); //Set small icon
//TODO: Add extra initialization here
LVITEM lvItem;
LVCOLUMN lvColumn;
int nCol;
lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_CENTER;
lvColumn.cx = 10;
lvColumn.pszText = _T("Filename");
ListView_InsertColumn( m_List, 0, &lvColumn );
ListView_SetItemText( m_List, 0, 0, _T("TEST") );
return TRUE; //return TRUE unless you set the focus to a control
}
OriginalL'auteur kampi | 2010-01-30
Vous devez vous connecter pour publier un commentaire.
Le contrôle de zone de liste prend en charge plusieurs colonnes, mais il ne supporte qu'une seule série d'entrées; les multiples de la colonne de soutien tout à fait les éléments de continuer sur la prochaine colonnes de sorte que le défilement vertical n'est pas nécessaire.
Comme Kornel a suggéré, un affichage de la liste de contrôle peut être plus approprié. Après la création d'une vue de liste de contrôle, utilisez ListView_InsertColumn pour créer les colonnes. Ensuite, utilisez ListView_SetItemText à insérer des éléments.
EDIT:
Mon apoligies; vous devez utiliser ListView_InsertItem pour insérer un élément (une ligne) et ensuite utiliser ListView_SetItemText de modifier les sous-éléments (colonnes). Si l'affichage de la liste est encore juste une case vide, sans les en-têtes, vous avez initialisé contrôles communs? Cela peut être fait en utilisant InitCommonControlsEx, en précisant le
ICC_LISTVIEW_CLASSES
constante. Cela devrait être fait avant la création de la commande.Voir La documentation de Microsoft sur l'affichage de la liste des contrôles.
OriginalL'auteur Sam
Ne pas utiliser une Zone de Liste, utilisez un Liste De Contrôle avec style LVS_REPORT.
OriginalL'auteur Kornel Kisielewicz
Peut-être à utiliser DataGridView avec l'objet en tant que source de données.
OriginalL'auteur eomeroff
Trois paramètres importants à vérifier sont
La capture d'écran montre ces
La programmation des flux d'ajouter des données à la liste de contrôle sont Modifier la liste de Contrôle à l'étendue de la vue liste(
ListView_SetExtendedListViewStyle
), de Créer la mise en page(Par l'ajout de colonnes), Ajouter un Élément de données (pour chaque ligne nécessaire) & ajouter enfin ajouter un sous-élément de chaque colonne (pour chaque élément de données ajoutées précédemment).OriginalL'auteur Santhosh Nagasanthosh