다음을 통해 공유


메뉴 및 리소스: 메뉴 병합

이 문서에서는 OLE 문서 응용 프로그램이 시각적 편집 및 현재 위치 활성화를 제대로 처리하는 데 필요한 단계를 자세히 설명합니다. 현재 위치 활성화는 컨테이너 및 서버(구성 요소) 애플리케이션 모두에 문제가 발생합니다. 사용자는 컨테이너 문서의 컨텍스트 내에서 동일한 프레임 창에 다시 기본 실제로 다른 애플리케이션(서버)을 실행합니다. 이렇게 하려면 컨테이너 및 서버 애플리케이션의 리소스 간에 조정이 필요합니다.

이 문서에서 다루는 항목은 다음과 같습니다.

메뉴 레이아웃

첫 번째 단계는 메뉴 레이아웃을 조정하는 것입니다. 컨테이너 애플리케이션은 포함된 항목이 활성화된 경우에만 사용할 새 메뉴를 만들어야 합니다. 최소한 이 메뉴는 나열된 순서대로 다음으로 구성되어야 합니다.

  1. 파일 메뉴는 파일이 열릴 때 사용되는 메뉴와 동일합니다. (일반적으로 다른 메뉴 항목은 다음 항목 앞에 배치되지 않습니다.)

  2. 두 개의 연속 구분 기호입니다.

  3. 창 메뉴는 파일이 열릴 때 사용되는 메뉴와 동일합니다(MDI 애플리케이션의 컨테이너 애플리케이션인 경우에만). 일부 애플리케이션에는 포함된 항목이 활성화될 때 메뉴에 다시 기본 이 그룹에 속하는 옵션 메뉴와 같은 다른 메뉴가 있을 수 있습니다.

    참고 항목

    확대/축소와 같이 컨테이너 문서의 보기에 영향을 주는 다른 메뉴가 있을 수 있습니다. 이러한 컨테이너 메뉴는 이 메뉴 리소스의 두 구분 기호 사이에 표시됩니다.

또한 서버(구성 요소) 애플리케이션은 현재 위치 활성화를 위한 새 메뉴를 만들어야 합니다. 파일이 열려 있을 때 사용되는 메뉴와 비슷하지만 데이터 대신 서버 문서를 조작하는 파일 및 창과 같은 메뉴 항목이 없어야 합니다. 일반적으로 이 메뉴는 다음으로 구성됩니다.

  1. 파일을 열 때 사용한 것과 동일한 편집 메뉴입니다.

  2. 구분선입니다.

  3. 개체 편집 메뉴(예: Scribble 샘플 애플리케이션의 펜 메뉴).

  4. 구분선입니다.

  5. 도움말 메뉴.

예를 들어 컨테이너 및 서버에 대한 일부 샘플 내부 메뉴의 레이아웃을 살펴봅니다. 예제를 더 명확하게 하기 위해 각 메뉴 항목의 세부 정보가 제거되었습니다. 컨테이너의 현재 위치 메뉴에는 다음과 같은 항목이 있습니다.

IDR_CONTAINERTYPE_CNTR_IP MENU PRELOAD DISCARDABLE
BEGIN
    POPUP "&File C1"
    MENUITEM SEPARATOR
    POPUP "&Zoom C2"
    MENUITEM SEPARATOR
    POPUP "&Options C3"
    POPUP "&Window C3"
END

연속 구분 기호는 서버 메뉴의 첫 번째 부분을 이동해야 하는 위치를 나타냅니다. 이제 서버의 현재 위치 메뉴를 확인합니다.

IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE
BEGIN
    POPUP "&Edit S1"
    MENUITEM SEPARATOR
    POPUP "&Format S2"
    MENUITEM SEPARATOR
    POPUP "&Help S3"
END

여기서 구분 기호는 컨테이너 메뉴 항목의 두 번째 그룹을 이동해야 하는 위치를 나타냅니다. 이 서버의 개체가 이 컨테이너 내에서 활성화될 때의 결과 메뉴 구조는 다음과 같습니다.

BEGIN
    POPUP "&File C1"
    POPUP "&Edit S1"
    POPUP "&Zoom C2"
    POPUP "&Format S2"
    POPUP "&Options C3
    POPUP "&Window C3"
    POPUP "&Help S3"
END

보듯이 구분 기호는 각 애플리케이션 메뉴의 다른 그룹으로 바뀌었습니다.

현재 위치 메뉴와 연결된 액셀러레이터 테이블도 서버 애플리케이션에서 제공해야 합니다. 컨테이너는 이를 자체 액셀러레이터 테이블에 통합합니다.

포함된 항목이 활성화되면 프레임워크는 현재 위치 메뉴를 로드합니다. 그런 다음 서버 애플리케이션에 해당 메뉴의 현재 위치 활성화를 요청하고 구분 기호가 있는 위치에 삽입합니다. 메뉴가 결합되는 방식입니다. 파일 및 창 배치에서 작동하기 위한 컨테이너의 메뉴를 가져올 수 있으며, 항목에서 작동하기 위한 메뉴를 서버에서 가져옵니다.

도구 모음 및 상태 표시줄

서버 애플리케이션은 새 도구 모음을 만들고 해당 비트맵을 별도의 파일에 저장해야 합니다. 애플리케이션 마법사에서 생성된 애플리케이션은 ITOOLBAR.BMP라는 파일에 이 비트맵을 저장합니다. 새 도구 모음은 서버 항목이 활성화될 때 컨테이너 애플리케이션의 도구 모음을 대체하며 일반 도구 모음과 동일한 항목을 포함해야 하지만 파일 및 창 메뉴에서 항목을 나타내는 아이콘을 제거합니다.

이 도구 모음은 애플리케이션 마법사에서 COleIPFrameWnd만든 파생 클래스에 로드됩니다. 상태 막대는 컨테이너 애플리케이션에서 처리됩니다. 현재 위치 프레임 창의 구현에 대한 자세한 내용은 서버: 서버 구현을 참조하세요.

참고 항목

메뉴 및 리소스(OLE)
정품 인증
서버
컨테이너