COLLECT, exemple : illustre des classes de collection MFC

Mise à jour : novembre 2007

L'exemple COLLECT illustre un large éventail des classes de collection offertes par la bibliothèque MFC (Microsoft Foundation Class).

Note de sécurité :

Cet exemple de code est fourni pour illustrer un concept et ne doit pas être utilisé dans des applications ou des sites Web, car il peut ne pas illustrer les pratiques de programmation les plus sûres. Microsoft n'assume aucune responsabilité pour tout dommage indirect ou consécutif en cas d'utilisation de l'exemple de code à des fins autres que celles prévues.

Pour obtenir des exemples et des instructions d'installation :

  • Dans le menu ? (Aide) de Visual Studio, cliquez sur Exemples.

    Pour plus d'informations, consultez Recherche des fichiers d'exemple.

  • La liste la plus récente et la plus complète d'exemples est disponible en ligne à partir de la page Visual Studio 2008 Samples.

  • Des exemples sont également disponibles sur le disque dur de votre ordinateur. Des exemples et un fichier Readme sont copiés par défaut dans un dossier sous \Program Files\Visual Studio 9.0\Samples\. Pour les éditions Express de Visual Studio, tous les exemples sont accessibles en ligne.

Génération et exécution de l'exemple

Pour générer et exécuter l'exemple COLLECT

  1. Ouvrez la solution collect.sln.

  2. Dans le menu Générer, cliquez sur Générer.

  3. Dans le menu Déboguer, cliquez sur Exécuter sans débogage.

Le menu Example répertorie neuf illustrations de classe de collection organisées conformément au tableau suivant. Chaque exemple présente une vue de type formulaire qui effectue de nombreuses opérations communes aux collections :

  • Ajout d'un nouvel élément.

  • Insertion d'un nouvel élément au milieu d'une liste.

  • Recherche d'un élément (en cliquant sur l'entrée correspondante dans la zone de liste de la boîte de dialogue).

  • Recherche d'une entrée dans la table en entrant le paramètre Key et en cliquant sur Rechercher.

  • Mise à jour de la valeur d'un élément.

  • Suppression d'un élément.

  • Suppression de tous les éléments de la collection.

Vous pouvez enregistrer les modifications apportées à tous les exemples en cliquant dans le menu Fichier sur Enregistrer, puis lire à nouveau ces exemples en cliquant dans le menu Fichier sur Ouvrir.

Classes de collection MFC

Les classes de collection MFC peuvent être organisées en fonction de leur forme et de leur design. Les MFC proposent des classes pour trois types de formes de collection :

  • Listes

  • Tableaux

  • Tables

Les types de conceptions sont également au nombre de trois :

  • Aucune utilisation de modèles C++.

  • Utilisation d'une collection d'éléments simples basée sur un modèle C++.

  • Utilisation d'une collection de pointeurs de type sécurisé basée sur un modèle C++.

Le tableau suivant identifie toutes les classes de collection MFC triées selon leur forme et leur design. L'exemple COLLECT illustre neuf de ces collections, une pour chaque cellule du tableau. Chaque collection représente une combinaison différente de forme et de design. Par ailleurs, comme l'utilisation des collections basées sur des modèles CTypedPtrArray et CTypedPtrList est différente selon qu'elles contiennent des pointeurs vers des objets CObjects ou non CObject, l'exemple COLLECT illustre les deux cas. Les neuf collections illustrées par COLLECT sont indiquées par un astérisque.

Formes de collection

Non basée sur un modèle

Collection d'éléments simples basée sur un modèle

Collection de pointeurs de type sécurisé basée sur un modèle

Liste

CStringList*

CList*

CTypedPtrList

 

CObList

 

(de pointeurs)*

 

CPtrList

 

CTypedPtrList

 

 

 

(d'objets CObject)

Tableau

CByteArray

CArray*

CTypedPtrArray

 

CUIntArray

 

(de pointeurs)

 

CWordArray*

 

 

 

CDWordArray

 

CTypedPtrArray

 

CStringArray

 

(d'objets CObject)*

 

CPtrArray

 

 

 

CObArray

 

 

Table

CMapWordToPtr

CMap*

CTypedPtrMap*

 

CMapWordToOb

 

 

 

CMapStringToString*

 

 

 

CMapStringToPtr

 

 

 

CMapStringToOb

 

 

 

CMapPtrToWord

 

 

 

CMapPtrToPtr

 

 

Autres fonctionnalités de COLLECT

Outre les classes de collection MFC, l'exemple COLLECT illustre les opérations suivantes :

  • Coordination de l'ajout et de la suppression d'entrées dans une zone de liste avec l'ajout et la suppression d'entrées dans une collection.

  • Basculement entre différentes vues d'un document, une seule vue étant affichée à la fois. Autrement dit, bien que l'exemple COLLECT propose plusieurs vues différentes, il utilise une interface monodocument (SDI) et non une interface multidocument (MDI).

Mots clés

Cet exemple illustre l'utilisation des mots clés suivants :

AfxMessageBox ; CCmdUI::SetCheck ; CControlBar::EnableDocking ; CDialog::DoModal ; CDocument::DeleteContents ; CDocument::OnNewDocument ; CFrameWnd::DockControlBar ; CFrameWnd::EnableDocking ; CFrameWnd::GetActiveDocument ; CFrameWnd::GetActiveView ; CFrameWnd::RecalcLayout ; CFrameWnd::SetActiveView ; CListBox::AddString ; CListBox::DeleteString ; CListBox::FindString ; CListBox::GetCurSel ; CListBox::GetItemData ; CListBox::GetItemDataPtr ; CListBox::GetText ; CListBox::InsertString ; CListBox::ResetContent ; CListBox::SetItemData ; CListBox::SetItemDataPtr ; CObject::AssertValid ; CObject::Dump ; CObject::Serialize ; CStatusBar::Create ; CStatusBar::SetIndicators ; CString::Empty ; CString::Format ; CString::LoadString ; CToolBar::Create ; CToolBar::LoadBitmap ; CToolBar::SetButtons ; CView::DoPreparePrinting ; CView::GetDocument ; CView::OnBeginPrinting ; CView::OnDraw ; CView::OnEndPrinting ; CView::OnInitialUpdate ; CView::OnPreparePrinting ; CView::OnUpdate ; CWinApp::AddDocTemplate ; CWinApp::InitInstance ; CWinApp::LoadStdProfileSettings ; CWinApp::OnFileNew ; CWnd::DestroyWindow ; CWnd::DoDataExchange ; CWnd::OnCreate ; CWnd::ShowWindow ; CWnd::UpdateData ; LoadString ; SetWindowLong

Remarque :

Certains exemples, tels que celui-ci, n'ont pas été modifiés pour refléter les changements apportés aux Assistants, aux bibliothèques et au compilateur Visual C++, mais ils illustrent bien l'exécution de la tâche souhaitée.

Voir aussi

Autres ressources

Exemples MFC