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
Ouvrez la solution collect.sln.
Dans le menu Générer, cliquez sur Générer.
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. |