다음을 통해 공유


클립보드 정보

클립보드 애플리케이션이 데이터를 전송할 수 있도록 하는 함수 및 메시지 집합입니다. 모든 애플리케이션이 클립보드에 액세스할 수 있으므로 애플리케이션 간 또는 애플리케이션 내에서 데이터를 쉽게 전송할 수 있습니다.

클립보드는 사용자 기반입니다. 창은 사용자의 명령에 대한 응답으로만 클립보드 간에 데이터를 전송해야 합니다. 창은 사용자의 지식 없이 데이터를 전송하기 위해 클립보드를 사용하면 안 됩니다.

클립보드의 메모리 개체는 클립보드 형식이라고 하는 모든 데이터 형식일 수 있습니다. 각 형식은 부호 없는 정수 값으로 식별됩니다. 표준(미리 정의된) 클립보드 형식의 경우 이 값은 Winuser.h에 정의된 상수입니다. 등록된 클립보드 형식의 경우 RegisterClipboardFormat 함수의 반환 값입니다.

클립보드 형식 등록을 제외하고 개별 창은 대부분의 클립보드 작업을 수행합니다. 일반적으로 창 프로시저는 WM_COMMAND 메시지에 대한 응답으로 클립보드 간에 정보를 전송합니다.

이 섹션에서는 다음에 대해 설명합니다.

클립보드 명령

일반적으로 사용자는 애플리케이션의 편집 메뉴에서 명령을 선택하여 클립보드 작업을 수행합니다. 다음은 표준 클립보드 명령에 대한 간략한 설명입니다.

명령 묘사
잘라내기 현재 선택 영역의 복사본을 클립보드에 놓고 문서에서 선택 영역을 삭제합니다. 클립보드의 이전 콘텐츠가 제거됩니다.
복사 현재 선택 영역의 복사본을 클립보드에 배치합니다. 문서는 변경되지 않은 상태로 유지됩니다. 클립보드의 이전 콘텐츠가 제거됩니다.
붙여넣기 현재 선택 영역을 클립보드의 내용으로 바꿉니다. 클립보드의 내용은 변경되지 않습니다.
삭제 문서에서 현재 선택 영역을 삭제합니다. 클립보드의 내용은 변경되지 않습니다. 이 명령은 클립보드를 포함하지 않지만 편집 메뉴에 클립보드 명령과 함께 표시됩니다.

 

클립보드 시퀀스 번호

각 창 스테이션의 클립보드에는 연결된 클립보드 시퀀스 번호가 있습니다. 이 숫자는 클립보드의 내용이 변경될 때마다 증가합니다. 클립보드 시퀀스 번호를 가져오려면 GetClipboardSequenceNumber 함수를 호출합니다.

클립보드 뷰어

클립보드 뷰어는 클립보드의 현재 콘텐츠를 표시하는 창입니다. 클립보드 뷰어 창은 사용자에게 편리하며 클립보드의 데이터 트랜잭션 함수에는 영향을 주지 않습니다.

일반적으로 클립보드 뷰어 창은 CF_TEXT, CF_BITMAPCF_METAFILEPICT세 가지 이상의 가장 일반적인 형식을 표시할 수 있습니다. 창에서 이러한 세 가지 형식으로 데이터를 사용할 수 없으면 표시 형식으로 데이터를 제공하거나 소유자 표시 형식을 사용해야 합니다.

클립보드 뷰어 체인 둘 이상의 엔터티를 함께 연결하여 작업을 위해 서로 종속되도록 합니다. 이 상호 종속성(체인)을 사용하면 실행 중인 모든 클립보드 뷰어 애플리케이션이 현재 클립보드로 전송된 메시지를 받을 수 있습니다.

이 섹션에서는 다음 항목에 대해 설명합니다.

클립보드 뷰어 창

창은 SetClipboardViewer 함수를 호출하여 클립보드 뷰어 체인에 자신을 추가합니다. 반환 값은 체인의 다음 창에 대한 핸들입니다. 체인의 첫 번째 창에 대한 핸들을 검색하려면 GetClipboardViewer 함수를 호출합니다.

각 클립보드 뷰어 창은 클립보드 뷰어 체인의 다음 창을 추적해야 합니다. 클립보드의 내용이 변경되면 시스템은 체인의 첫 번째 창에 WM_DRAWCLIPBOARD 메시지를 보냅니다. 디스플레이를 업데이트한 후 각 클립보드 뷰어 창은 이 메시지를 체인의 다음 창에 전달해야 합니다.

닫기 전에 클립보드 뷰어 창은 ChangeClipboardChain 함수를 호출하여 클립보드 뷰어 체인에서 자신을 제거해야 합니다. 그런 다음 시스템은 체인의 첫 번째 창에 WM_CHANGECBCHAIN 메시지를 보냅니다.

WM_DRAWCLIPBOARDWM_CHANGECBCHAIN 메시지 처리에 대한 자세한 내용은 클립보드 뷰어 창 만들기참조하세요.

표시 형식

표시 형식은 클립보드 뷰어 창에 정보를 표시하는 데 사용되는 클립보드 형식입니다. 개인 또는 등록된 클립보드 형식을 사용하고 가장 일반적인 표준 형식을 사용하지 않는 클립보드 소유자는 클립보드 뷰어 창에서 볼 수 있도록 표시 형식으로 데이터를 제공해야 합니다. 표시 형식은 보기 전용이며 문서에 붙여넣지 않아야 합니다.

네 가지 표시 형식은 CF_DSPBITMAP, CF_DSPMETAFILEPICT, CF_DSPTEXTCF_DSPENHMETAFILE. 이러한 표시 형식은 CF_BITMAP, CF_TEXT, CF_METAFILEPICTCF_ENHMETAFILE표준 형식과 동일한 방식으로 렌더링됩니다.

소유자 표시 형식

일반적인 표준 클립보드 형식을 사용하지 않는 클립보드 소유자의 경우 표시 형식을 제공하는 대신 소유자 표시(CF_OWNERDISPLAY) 클립보드 형식을 사용하는 것이 좋습니다.

소유자 표시 형식을 사용하면 클립보드 소유자가 클립보드 뷰어 창 그리기를 직접 제어하여 데이터를 추가 형식으로 렌더링하는 오버헤드를 방지할 수 있습니다. 클립보드 뷰어 창은 창의 일부를 다시 그려야 하거나 창이 스크롤되거나 크기가 조정될 때마다 클립보드 소유자에게 메시지를 보냅니다.

표준 클립보드 형식