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 샘플을 빌드하고 실행하려면
솔루션 파일인 collect.sln을 엽니다.
빌드 메뉴에서 빌드를 클릭합니다.
디버그 메뉴에서 디버깅하지 않고 시작을 클릭합니다.
Example 메뉴에 다음 표에 따라 구성된 아홉 개의 컬렉션 클래스 예제가 나열됩니다. 각 예제에서는 다음과 같이 일반적인 여러 가지 컬렉션 작업을 연습하는 폼 뷰를 표시합니다.
새 요소 추가
목록 중간에 새 요소 삽입
대화 상자의 목록 상자에서 엔트리를 클릭하여 요소 검색
키를 입력하거나 Find를 클릭하여 맵의 엔트리 검색
요소 값 업데이트
요소 제거
컬렉션의 모든 요소 제거
File 메뉴에서 Save를 클릭한 다음 File 메뉴에서 Open을 클릭하여 이를 다시 읽으면 모든 예제에 대한 변경 내용을 저장할 수 있습니다.
MFC 컬렉션 클래스
MFC 컬렉션 클래스는 모양 및 디자인에 따라 분류할 수 있습니다. MFC에서는 다음 세 가지 종류의 컬렉션 모양에 대한 클래스를 제공합니다.
목록
배열
맵
MFC에서는 다음 세 가지 종류의 디자인도 제공합니다.
C++ 템플릿을 사용하지 않음
단순 요소의 C++ 템플릿 기반 컬렉션 사용
형식이 안전한 포인터의 C++ 템플릿 기반 컬렉션 사용
다음 표에는 모든 MFC 컬렉션이 모양 및 디자인에 따라 정렬되어 있습니다. COLLECT 샘플에서는 이 컬렉션 중 아홉 개를 보여 주며, 각 컬렉션은 테이블의 각 셀 하나에 해당합니다. 각 컬렉션은 모양 및 디자인의 서로 다른 조합을 나타냅니다. 또한, 해당 컬렉션이 CObjects 또는 비 CObject에 대한 포인터를 보유하는 데 사용되는지 여부에 따라 CTypedPtrArray 및 CTypedPtrList 템플릿 기반 컬렉션의 사용 여부가 달라지므로 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++ 마법사, 라이브러리 및 컴파일러의 변경 내용을 반영하도록 수정되지 않았지만 해당 작업의 수행 방법을 보여 줍니다. |