다음을 통해 공유


컨테이너: 컨테이너 구현

이 문서에서는 컨테이너를 구현하는 절차를 요약하고 컨테이너 구현에 대한 자세한 설명을 제공하는 다른 문서를 가리킵니다. 또한 구현할 수 있는 몇 가지 선택적 OLE 기능과 이러한 기능을 설명하는 문서를 나열합니다.

CWinApp 파생 클래스를 준비하려면

  1. 멤버 함수에서 호출 AfxOleInit 하여 OLE 라이브러리를 InitInstance 초기화합니다.

  2. InitInstance 포함된 항목이 현재 위치에서 활성화될 때 사용되는 메뉴 및 액셀러레이터 리소스를 할당하려면 호출 CDocTemplate::SetContainerInfo 합니다. 이 항목에 대한 자세한 내용은 활성화를 참조 하세요.

이러한 기능은 MFC 애플리케이션 마법사를 사용하여 컨테이너 애플리케이션을 만들 때 자동으로 제공됩니다. MFC EXE 프로그램 만들기를 참조하세요.

보기 클래스를 준비하려면

  1. 선택한 항목을 기본 포인터 또는 선택한 항목을 여러 개 지원하는 경우 포인터 목록을 지정하여 선택한 항목을 추적합니다. 함수는 OnDraw 모든 OLE 항목을 그려야 합니다.

  2. 전달된 항목이 현재 선택되어 있는지 여부를 검사 재정 IsSelected 의합니다.

  3. OnInsertObject 개체 삽입 대화 상자를 표시하는 메시지 처리기를 구현합니다.

  4. OnSetFocus 보기에서 현재 위치 활성 OLE 포함 항목으로 포커스를 전송하는 메시지 처리기를 구현합니다.

  5. OnSize 포함된 보기의 크기 변경 내용을 반영하도록 사각형을 변경해야 한다는 것을 OLE 포함 항목에 알리는 메시지 처리기를 구현합니다.

이러한 기능의 구현은 애플리케이션마다 크게 다르므로 애플리케이션 마법사는 기본 구현만 제공합니다. 애플리케이션이 제대로 작동하도록 이러한 함수를 사용자 지정해야 할 수 있습니다. 이에 대한 예제는 CONTAINER 샘플을 참조하세요.

포함된 항목 및 연결된 항목을 처리하려면

  1. COleClientItem에서 클래스를 파생합니다. 이 클래스의 개체는 OLE 문서에 포함되거나 연결된 항목을 나타냅니다.

  2. 재정 OnChange의 , OnChangeItemPositionOnGetItemPosition. 이러한 함수는 포함된 항목과 연결된 항목의 크기 조정, 위치 지정 및 수정을 처리합니다.

애플리케이션 마법사는 클래스를 파생하지만 이전 절차의 2단계에서 재정의하고 다른 함수와 함께 나열해야 할 OnChange 수 있습니다. 이러한 함수는 한 애플리케이션에서 다음 애플리케이션으로 다르게 구현되므로 대부분의 애플리케이션에 대해 기본 구현을 사용자 지정해야 합니다. 이에 대한 예제는 MFC 샘플 DRAWCLICONTAINER를 참조하세요.

OLE를 지원하려면 컨테이너 애플리케이션의 메뉴 구조에 여러 항목을 추가해야 합니다. 이에 대한 자세한 내용은 메뉴 및 리소스: 컨테이너 추가를 참조 하세요.

컨테이너 애플리케이션에서 다음 기능 중 일부를 지원할 수도 있습니다.

  • 포함된 항목을 편집할 때의 현재 위치 활성화입니다.

    자세한 내용은 활성화를 참조 하세요.

  • 서버 애플리케이션에서 선택 항목을 끌어서 놓아 OLE 항목을 만듭니다.

    자세한 내용은 OLE 끌어서 놓기를 참조 하세요.

  • 포함된 개체 또는 조합 컨테이너/서버 애플리케이션에 대한 링크입니다.

    자세한 내용은 컨테이너: 고급 기능을 참조 하세요.

참고 항목

컨테이너
컨테이너: 클라이언트 항목