다음을 통해 공유


클립보드: Windows 클립보드 사용

이 항목에서는 MFC 애플리케이션 내에서 표준 Windows 클립보드 API를 사용하는 방법을 설명합니다.

Windows용 대부분의 애플리케이션은 데이터를 잘라내거나 Windows 클립보드로 복사하고 클립보드에서 데이터를 붙여넣는 것을 지원합니다. 클립보드 데이터 형식은 애플리케이션마다 다릅니다. 프레임워크는 제한된 수의 클래스에 대해 제한된 수의 클립보드 형식만 지원합니다. 일반적으로 보기에 대한 편집 메뉴에서 클립보드 관련 명령(잘라내기, 복사 및 붙여넣기)을 구현합니다. 클래스 라이브러리는 ID_EDIT_CUT, ID_EDIT_COPY 및 ID_EDIT_PASTE 명령에 대한 명령 ID를 정의합니다. 메시지 줄 프롬프트도 정의됩니다.

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

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();
}

잘라내기, 복사 및 붙여넣기 명령은 특정 컨텍스트에서만 의미가 있습니다. 잘라내기 및 복사 명령은 항목을 선택한 경우에만 사용하도록 설정하고 클립보드에 있는 경우에만 붙여넣기 명령을 사용하도록 설정해야 합니다. 컨텍스트에 따라 이러한 명령을 사용하거나 사용하지 않도록 설정하는 업데이트 처리기 함수를 정의하여 이 동작을 제공할 수 있습니다. 자세한 내용은 사용자 인터페이스 개체를 업데이트하는 방법을 참조 하세요.

Microsoft Foundation 클래스 라이브러리는 텍스트 편집 CEditCEditView 클래스에 대한 클립보드 지원을 제공합니다. 또한 OLE 클래스는 OLE 항목을 포함하는 클립보드 작업 구현을 간소화합니다. OLE 클래스에 대한 자세한 내용은 클립보드: OLE 클립보드 메커니즘 사용을 참조하세요.

실행 취소(ID_EDIT_UNDO) 및 다시 실행(ID_EDIT_REDO)과 같은 다른 편집 메뉴 명령도 사용자에게 맡깁니다. 애플리케이션에서 이러한 명령을 지원하지 않는 경우 Visual C++ 리소스 편집기를 사용하여 리소스 파일에서 쉽게 삭제할 수 있습니다.

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

참고 항목

클립보드