サンプルを収集します。MFC コレクション クラスを示します
COLLECT サンプルでは、MFC (Microsoft Foundation Class) ライブラリが提供するさまざまなコレクション クラスについて説明します。
セキュリティに関するメモ |
---|
このサンプル コードは概念を示すためのものであり、その概念に関連するコードのみを示しています。特定の環境について必ずしもセキュリティ要件を満たしていませんので、そのまま使用しないでください。セキュリティおよびエラー処理コードを追加して、プロジェクトをより安全かつ堅牢にすることをお勧めします。これらのサンプル コードは、現状有姿のままで提供されるものであり、一切保証されていません。 |
サンプルとそのインストール手順を取得するには
Visual Studio のサンプルにアクセスするには
[ヘルプ] メニューの [サンプル] をクリックします。
既定では、これらのサンプルは drive:\Program Files\Microsoft Visual Studio 10.0\Samples\ にインストールされています。
サンプルのビルドと実行
COLLECT サンプルをビルドおよび実行するには
collect.sln ソリューション ファイルを開きます。
[ビルド] メニューの [ビルド] をクリックします。
でデバッグ メニューの、[デバッグなしで開始 をクリックします。
[Example] メニューには、以下の表に従って、9 つのコレクション クラスの例が一覧表示されます。Example それぞれの例では、次の共通のコレクション操作を実行するフォーム ビューが示されます。
新しい要素を追加する。
新しい要素をリストの途中に挿入する。
ダイアログ ボックスのリスト ボックスでエントリをクリックして、要素を検索する。
[Key] に入力し、[Find] をクリックして、マップのエントリを検索する。
要素の値を更新する。
要素を削除する。
コレクションのすべての要素を削除する。
すべて をクリックして、例ファイル メニューの保存し、 ファイルを開くファイル メニューをクリックして再度読み取るには、変更を保存できます。
MFC コレクション クラス
MFC コレクション クラスは、形状とデザインによって分類できます。 MFC には、コレクションの形状によって 3 とおりのクラスが用意されています。
リスト
配列
マップ
MFC にはまた、デザインによっても 3 とおりが用意されています。
C++ テンプレートを使用しない。
C++ テンプレート ベースの単純な要素のコレクションを使用する。
C++ テンプレート ベースのタイプ セーフなポインターのコレクションを使用する。
以下の表は、すべての MFC コレクション クラスを形状とデザインごとに示します。 COLLECT サンプルでは、表の各セルから 1 つずつ、9 個のコレクションについて説明しています。 各コレクションは、形状とデザインの組み合わせが異なります。 CTypedPtrArray CTypedPtrList テンプレート ベース コレクションの使用状況に応じて異なるためも、かどうか、 CObjects したりする以外のポインターを保持するために使用でどちらの場合もCObject %s、COLLECT サンプルを示します。 COLLECT サンプルで説明している 9 つのコレクションには、アスタリスクが付いています。
コレクション クラスの形状 |
非テンプレート ベース |
テンプレート ベースの単純な要素 |
テンプレート ベースのタイプ セーフなポインター |
---|---|---|---|
リスト |
CStringList* |
CList* |
CTypedPtrList |
|
CObList |
|
(ポインター リスト)* |
|
CPtrList |
|
CTypedPtrList |
|
|
|
(CObject リスト) |
Array |
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) を使用しています。
Keywords
このサンプルでは、次のキーワードを使用します。
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
注意
このサンプルを含む一部のサンプルには、Visual C++ のウィザード、ライブラリ、およびコンパイラの変更が反映されていませんが、必要なタスクを実行する方法は示されています。