COLLECT サンプル : MFC コレクション クラスの例

更新 : 2007 年 11 月

COLLECT サンプルでは、MFC (Microsoft Foundation Class) ライブラリが提供するさまざまなコレクション クラスについて説明します。

fw2702d6.alert_security(ja-jp,VS.90).gifセキュリティに関するメモ :

このサンプル コードは概念を示す目的で提供されているものです。必ずしも最も安全なコーディング手法に従っているわけではないので、アプリケーションまたは Web サイトでは使用しないでください。Microsoft は、サンプル コードが意図しない目的で使用された場合に、付随的または間接的な損害について責任を負いません。

サンプルとそのインストール手順を取得するには

  • Visual Studio で、[ヘルプ] メニューの [サンプル] をクリックします。

    詳細については、「サンプル ファイルの格納場所」を参照してください。

  • 使用できるサンプルの最新バージョンと完全な一覧については、オンラインの Visual Studio 2008 Samples のページを参照してください。

  • サンプルは、コンピュータのハード ディスク上にもあります。既定では、サンプルおよび Readme ファイルは、\Program Files\Visual Studio 9.0\Samples\ の下のフォルダにコピーされます。Visual Studio Express Edition の場合、すべてのサンプルはオンライン上にあります。

サンプルのビルドと実行

COLLECT サンプルをビルドおよび実行するには

  1. collect.sln ソリューション ファイルを開きます。

  2. [ビルド] メニューの [ビルド] をクリックします。

  3. [デバッグ] メニューの [デバッグなしで開始] をクリックします。

[Example] メニューには、以下の表に従って、9 つのコレクション クラスの例が一覧表示されます。それぞれの例では、次の共通のコレクション操作を実行するフォーム ビューが示されます。

  • 新しい要素を追加する。

  • 新しい要素をリストの途中に挿入する。

  • ダイアログ ボックスのリスト ボックスでエントリをクリックして、要素を検索する。

  • [Key] に入力し、[Find] をクリックして、マップのエントリを検索する。

  • 要素の値を更新する。

  • 要素を削除する。

  • コレクションのすべての要素を削除する。

どの例でも、[File] メニューの [Save] をクリックすると変更内容が保存されます。[File] メニューの [Open] をクリックすると再度読み込まれます。

MFC コレクション クラス

MFC コレクション クラスは、形状とデザインによって分類できます。MFC には、コレクションの形状によって 3 とおりのクラスが用意されています。

  • リスト

  • 配列

  • マップ

MFC にはまた、デザインによっても 3 とおりが用意されています。

  • C++ テンプレートを使用しない。

  • C++ テンプレート ベースの単純な要素のコレクションを使用する。

  • C++ テンプレート ベースのタイプ セーフなポインタのコレクションを使用する。

以下の表は、すべての MFC コレクション クラスを形状とデザインごとに示します。COLLECT サンプルでは、表の各セルから 1 つずつ、9 個のコレクションについて説明しています。各コレクションは、形状とデザインの組み合わせが異なります。また、テンプレート ベースのコレクション CTypedPtrArrayCTypedPtrList は、CObjects へのポインタまたは CObject 以外へのポインタのどちらを保持するかによって使い方が異なります。COLLECT サンプルでは両方の場合について説明しています。COLLECT サンプルで説明している 9 つのコレクションには、アスタリスクが付いています。

コレクション クラスの形状

非テンプレート ベース

テンプレート ベースの単純な要素

テンプレート ベースのタイプ セーフなポインタ

リスト

CStringList*

CList*

CTypedPtrList

 

CObList

 

(ポインタ リスト)*

 

CPtrList

 

CTypedPtrList

 

 

 

(CObject リスト)

配列

CByteArray

CArray*

CTypedPtrArray

 

CUIntArray

 

(ポインタ配列)

 

CWordArray*

 

 

 

CDWordArray

 

CTypedPtrArray

 

CStringArray

 

(CObject 配列)*

 

CPtrArray

 

 

 

CObArray

 

 

マップ

CMapWordToPtr

CMap*

CTypedPtrMap*

 

CMapWordToOb

 

 

 

CMapStringToString*

 

 

 

CMapStringToPtr

 

 

 

CMapStringToOb

 

 

 

CMapPtrToWord

 

 

 

CMapPtrToPtr

 

 

COLLECT のその他の機能

MFC のコレクション クラスの説明に加えて、COLLECT では以下についても説明しています。

  • リスト ボックス内のエントリの追加や削除と、コレクション内のエントリの追加や削除の調整。

  • 一度に 1 つのビューだけを表示する場合の、ドキュメントのさまざまなビューの切り替え。COLLECT には多数の異なるビューがありますが、マルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) ではなく、シングル ドキュメント インターフェイス (SDI: Single Document Interface) を使用しています。

キーワード

このサンプルでは、次のキーワードを使用します。

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

fw2702d6.alert_note(ja-jp,VS.90).gifメモ :

このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。

参照

その他の技術情報

MFC サンプル