다음을 통해 공유


클립보드: 데이터 복사 및 붙여넣기

이 항목에서는 OLE 애플리케이션의 클립보드에서 복사 및 붙여넣기를 구현하는 데 필요한 최소 작업에 대해 설명합니다. 계속하기 전에 OLE(데이터 개체 및 데이터 원본) 항목을 읽는 것이 좋습니다.

복사 또는 붙여넣기를 구현하려면 먼저 편집 메뉴에서 복사, 잘라내기 및 붙여넣기 옵션을 처리하는 함수를 제공해야 합니다.

데이터 복사 또는 절단

클립보드에 데이터를 복사하려면

  1. 복사할 데이터가 네이티브 데이터인지 또는 포함되거나 연결된 항목인지 확인합니다.

    • 데이터가 포함되거나 연결된 경우 선택한 개체에 대한 포인터를 COleClientItem 가져옵니다.

    • 데이터가 네이티브이고 애플리케이션이 서버인 경우 선택한 데이터를 포함하는 새 COleServerItem 개체를 만듭니다. 그렇지 않으면 데이터에 대한 개체를 만듭니 COleDataSource 다.

  2. 선택한 항목의 멤버 함수를 CopyToClipboard 호출합니다.

  3. 사용자가 복사 작업 대신 잘라내기 작업을 선택한 경우 애플리케이션에서 선택한 데이터를 삭제합니다.

이 시퀀스의 예를 보려면 MFC OLE 샘플 프로그램 OCLIENTOnEditCopy HIERSVR의 함수 및 기능을 참조 OnEditCut 하세요. 이러한 샘플은 현재 선택한 데이터에 대한 포인터를 기본 있으므로 1단계가 이미 완료되었습니다.

데이터 붙여넣기

데이터를 애플리케이션에 붙여넣는 데 사용할 형식을 선택해야 하므로 데이터를 복사하는 것보다 더 복잡합니다.

클립보드에서 데이터를 붙여넣려면

  1. 보기 클래스에서 편집 메뉴에서 붙여넣기 옵션을 선택하는 사용자를 처리하도록 구현 OnEditPaste 합니다.

  2. 함수에서 OnEditPaste 개체를 COleDataObject 만들고 해당 멤버 함수를 AttachClipboard 호출하여 이 개체를 클립보드의 데이터에 연결합니다.

  3. 특정 형식을 사용할 수 있는지 여부를 검사 호출 COleDataObject::IsDataAvailable 합니다.

    또는 애플리케이션에 가장 적합한 형식을 찾을 때까지 다른 형식을 찾는 데 사용할 COleDataObject::BeginEnumFormats 수 있습니다.

  4. 형식의 붙여넣기를 수행합니다.

작동 방식에 대한 예제는 MFC OLE 샘플 프로그램 OCLIENTHIERSVR에 정의된 뷰 클래스에서 멤버 함수의 구현 OnEditPaste 을 참조하세요.

붙여넣기 작업을 자체 함수로 분리하는 기본 이점은 끌어서 놓기 작업 중에 애플리케이션에서 데이터를 삭제할 때 동일한 붙여넣기 코드를 사용할 수 있다는 것입니다. OCLIENT 및 HIERSVR OnDrop 에서와 같이 함수는 붙여넣기 작업을 구현하기 위해 작성된 코드를 다시 사용하여 호출 DoPasteItem할 수도 있습니다.

편집 메뉴에서 선택하여 붙여넣기 옵션을 처리하려면 OLE의 항목 대화 상자를 참조하세요.

다음에 대해 자세히 알고 싶은 사항

참고 항목

클립보드: OLE 클립보드 메커니즘 사용