Share via


COLLECT 샘플: MFC 컬렉션 클래스

업데이트: 2007년 11월

COLLECT 샘플에서는 MFC 라이브러리에서 제공하는 다양한 컬렉션 클래스를 보여 줍니다.

보안 정보:

이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다.

샘플 및 이를 설치하기 위한 지침을 가져오려면

  • Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.

    자세한 내용은 샘플 파일 찾기를 참조하십시오.

  • 최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.

  • 컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.

샘플 빌드 및 실행

COLLECT 샘플을 빌드하고 실행하려면

  1. 솔루션 파일인 collect.sln을 엽니다.

  2. 빌드 메뉴에서 빌드를 클릭합니다.

  3. 디버그 메뉴에서 디버깅하지 않고 시작을 클릭합니다.

Example 메뉴에 다음 표에 따라 구성된 아홉 개의 컬렉션 클래스 예제가 나열됩니다. 각 예제에서는 다음과 같이 일반적인 여러 가지 컬렉션 작업을 연습하는 폼 뷰를 표시합니다.

  • 새 요소 추가

  • 목록 중간에 새 요소 삽입

  • 대화 상자의 목록 상자에서 엔트리를 클릭하여 요소 검색

  • 키를 입력하거나 Find를 클릭하여 맵의 엔트리 검색

  • 요소 값 업데이트

  • 요소 제거

  • 컬렉션의 모든 요소 제거

File 메뉴에서 Save를 클릭한 다음 File 메뉴에서 Open을 클릭하여 이를 다시 읽으면 모든 예제에 대한 변경 내용을 저장할 수 있습니다.

MFC 컬렉션 클래스

MFC 컬렉션 클래스는 모양 및 디자인에 따라 분류할 수 있습니다. MFC에서는 다음 세 가지 종류의 컬렉션 모양에 대한 클래스를 제공합니다.

  • 목록

  • 배열

MFC에서는 다음 세 가지 종류의 디자인도 제공합니다.

  • C++ 템플릿을 사용하지 않음

  • 단순 요소의 C++ 템플릿 기반 컬렉션 사용

  • 형식이 안전한 포인터의 C++ 템플릿 기반 컬렉션 사용

다음 표에는 모든 MFC 컬렉션이 모양 및 디자인에 따라 정렬되어 있습니다. COLLECT 샘플에서는 이 컬렉션 중 아홉 개를 보여 주며, 각 컬렉션은 테이블의 각 셀 하나에 해당합니다. 각 컬렉션은 모양 및 디자인의 서로 다른 조합을 나타냅니다. 또한, 해당 컬렉션이 CObjects 또는 비 CObject에 대한 포인터를 보유하는 데 사용되는지 여부에 따라 CTypedPtrArrayCTypedPtrList 템플릿 기반 컬렉션의 사용 여부가 달라지므로 COLLECT 샘플에서는 두 가지 경우를 모두 보여 줍니다. COLLECT에서 보여 주는 아홉 개의 컬렉션은 별표로 표시되어 있습니다.

컬렉션 모양

비 템플릿 기반

템플릿 기반 단순 요소

템플릿 기반의 형식이 안전한 포인터

목록

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 기능

COLLECT에서는 MFC 컬렉션 클래스 외에 다음 사항도 보여 줍니다.

  • 목록 상자에서의 엔트리 추가 및 제거를 컬렉션에서의 엔트리 추가 및 제거와 함께 조정

  • 여러 문서 뷰 간의 전환(한 번에 한 뷰만 표시). 즉, COLLECT에는 여러 뷰가 있지만 MDI(다중 문서 인터페이스) 대신 SDI(단일 문서 인터페이스)가 포함되어 있습니다.

키워드

이 샘플에서는 다음의 키워드를 보여 줍니다.

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++ 마법사, 라이브러리 및 컴파일러의 변경 내용을 반영하도록 수정되지 않았지만 해당 작업의 수행 방법을 보여 줍니다.

참고 항목

기타 리소스

MFC 샘플