다음을 통해 공유


클립보드: Windows 클립보드를 사용합니다.

이 항목에서는 MFC 응용 프로그램 내에서 표준 Windows 클립보드 API를 사용 하는 방법을 설명 합니다.

대부분의 응용 프로그램 창에 대 한 가공 또는 데이터를 Windows 클립보드에 복사 및 붙여넣기 클립보드의에서 데이터를 지원 합니다.클립보드 데이터 형식은 응용 프로그램 간에 다릅니다.프레임 워크는 제한 된 수의 클래스에만 제한 된 수의 클립보드 형식만 지원합니다.클립보드 관련 명령이 정상적으로 구현할-잘라내기, 복사 및 붙여넣기-편집 메뉴에 있는 보기.클래스 라이브러리는 이러한 명령에 대 한 명령 Id 정의: ID_EDIT_CUT, ID_EDIT_COPY, 및 ID_EDIT_PASTE.해당 메시지 줄 프롬프트도 정의 됩니다.

프레임 워크의 메시지 및 명령 메뉴 명령을 처리기 함수에 매핑하여 응용 프로그램에서 메뉴 명령을 처리 하는 방법에 설명 합니다.응용 프로그램 편집 메뉴의 클립보드 명령에 대 한 처리기 함수를 정의 하지 않는 한 해당 명령은 사용할 수 있습니다.잘라내기 및 복사 명령의 처리기 함수를 작성 하려면 응용 프로그램에서 선택 영역을 구현 합니다.붙여넣기 명령의 처리기 함수를 작성 하려면 클립보드에 응용 프로그램을 허용 하는 형식의 데이터가 포함 되어 있는지 여부를 확인 하려면 쿼리 합니다.예를 들어, 복사 명령을 사용 하 여 처리기 다음과 같이 작성할 수 있습니다.

void CMyListView::OnEditCopy()
{
   if ( !OpenClipboard() )
   {
      AfxMessageBox( _T("Cannot open the Clipboard") );
      return;
   }
   // Remove the current Clipboard contents
   if( !EmptyClipboard() )
   {
      AfxMessageBox( _T("Cannot empty the Clipboard") );
      return;
   }
   // Get the currently selected data
   HGLOBAL hGlob = GlobalAlloc(GMEM_FIXED, 64);
   strcpy_s((char*)hGlob, 64, "Current selection\r\n");
   // For the appropriate data formats...
   if ( ::SetClipboardData( CF_TEXT, hGlob ) == NULL )
   {
      CString msg;
      msg.Format(_T("Unable to set Clipboard data, error: %d"), GetLastError());
      AfxMessageBox( msg );
      CloseClipboard();
      GlobalFree(hGlob);
      return;
   }
   CloseClipboard();
}

잘라내기, 복사 및 붙여넣기 명령에만 특정 컨텍스트에서 의미가 있습니다.잘라내기 및 복사 명령은 것을 선택 하 고 클립보드에 붙여넣기 명령을 경우에 동작 되 면 안 됩니다.활성화 하거나 컨텍스트에 따라 이러한 명령을 비활성화 하는 업데이트 처리기 함수를 정의 하 여이 동작을 제공할 수 있습니다.자세한 내용은 사용자 인터페이스 개체 업데이트 방법.

Mfc 라이브러리와 텍스트를 편집 하기 위해 클립보드 지원을 제공 하지는 CEditCEditView 클래스입니다.OLE 클래스 OLE 항목과 관련 된 클립보드 작업 구현도 간단 하 게 합니다.OLE 클래스에 대 한 자세한 내용은 클립보드: OLE 클립보드 메커니즘을 사용 하 여.

편집 메뉴 명령 실행 취소와 같은 다른 구현 (ID_EDIT_UNDO)와 다시 (ID_EDIT_REDO), 수도에 남아 있습니다.응용 프로그램에서 이러한 명령을 지원 하지 않습니다을 Visual C++ 리소스 편집기를 사용 하 여 리소스 파일에서 쉽게 삭제할 수 있습니다.

추가 정보

참고 항목

개념

클립보드