끌어서 놓기
끌어서 놓 기는 마우스 또는 다른 포인팅 디바이스가 데이터 원본과 대상을 모두 지정하는 데 사용되는 데이터 전송을 나타냅니다. 일반적인 끌어서 놓기 작업에서 사용자는 마우스 포인터를 이동한 다음 왼쪽 단추 또는 이 용도로 지정된 다른 단추를 누른 채 전송할 개체를 선택합니다. 단추를 계속 누르고 있는 동안 사용자는 개체를 대상으로 끌어 전송을 시작합니다( OLE 컨테이너일 수 있음). 끌어서 놓기 기능은 OLE 클립보드 복사 및 붙여넣기와 정확히 동일한 기능을 제공하지만 시각적 피드백을 추가하고 메뉴가 필요하지 않습니다. 실제로 애플리케이션이 클립보드 복사 및 붙여넣기를 지원하는 경우 끌어서 놓기를 지원하기 위해 약간의 추가 작업이 필요합니다.
OLE 끌어서 놓기 작업 중에 다음 세 개의 개별 코드 조각이 사용됩니다.
코드 원본 끌어서 놓기 | 구현 및 사용 |
---|---|
IDropSource 인터페이스 |
끌기 원본이라고 하는 끌기 데이터를 포함하는 개체에 의해 구현됩니다. |
IDropTarget 인터페이스 |
드롭 대상이라고 하는 드롭을 수락하기 위한 개체에 의해 구현됩니다. |
DoDragDrop 함수 |
OLE에서 구현되고 끌어서 놓기 작업을 시작하는 데 사용됩니다. 작업이 진행되면 끌어서 놓기 대상과 끌어서 놓기 대상 간의 통신을 용이하게 합니다. |
IDropSource 및 IDropTarget 인터페이스는 컨테이너 또는 개체 애플리케이션에서 구현할 수 있습니다. 끌어서 놓기 대상의 역할은 한 가지 유형의 OLE 애플리케이션으로 제한되지 않습니다.
OLE 함수 DoDragDrop 은 끌기가 취소되거나 낙하가 발생할 때까지 마우스 및 키보드 움직임을 추적하는 루프를 구현합니다. DoDragDrop 은 끌어서 놓기 프로세스의 핵심 함수로, 끌기 소스와 놓기 대상 간의 통신을 용이하게 합니다.
끌어서 놓기 작업 중에 세 가지 유형의 피드백을 사용자에게 표시할 수 있습니다.
피드백 유형 | 설명 |
---|---|
원본 피드백 |
끌기 원본에서 제공하는 원본 피드백은 데이터가 끌기 중이며 끌기 중에 변경되지 않음을 나타냅니다. 일반적으로 데이터가 선택되었음을 알리기 위해 강조 표시됩니다. |
포인터 피드백 |
끌기 소스에서 제공하는 포인터 피드백은 마우스가 지정된 순간에 놓이면 어떻게 되는지 나타냅니다. 사용자가 마우스를 이동하거나 한정자 키를 누르면 포인터 피드백이 지속적으로 변경됩니다. 예를 들어 포인터를 놓을 수 없는 창으로 이동하면 포인터가 "허용되지 않음" 기호로 변경됩니다. |
대상 피드백 |
드롭 대상에서 제공하는 대상 피드백은 드롭이 발생할 위치를 나타냅니다. |
자세한 내용은 원본 책임 끌기를 참조하세요.