COleDropTarget 클래스
창과 OLE 라이브러리 사이의 통신 메커니즘을 제공합니다.
구문
class COleDropTarget : public CCmdTarget
멤버
공용 생성자
속성 | 설명 |
---|---|
COleDropTarget::COleDropTarget | COleDropTarget 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
COleDropTarget::OnDragEnter | 커서가 창에 처음 들어갈 때 호출됩니다. |
COleDropTarget::OnDragLeave | 커서를 창 밖으로 끌 때 호출됩니다. |
COleDropTarget::OnDragOver | 커서를 창 위로 끌 때 반복적으로 호출됩니다. |
COleDropTarget::OnDragScroll | 커서를 창의 스크롤 영역으로 끌지 여부를 확인하기 위해 호출됩니다. |
COleDropTarget::OnDrop | 데이터가 창에 삭제될 때 호출됩니다. 기본 처리기입니다. |
COleDropTarget::OnDropEx | 초기 처리기인 창에 데이터를 삭제할 때 호출됩니다. |
COleDropTarget::Register | 창을 유효한 삭제 대상으로 등록합니다. |
COleDropTarget::Revoke | 창이 유효한 놓기 대상이 되지 않도록 합니다. |
설명
이 클래스의 개체를 만들면 창에서 OLE 끌어서 놓기 메커니즘을 통해 데이터를 수락할 수 있습니다.
놓기 명령을 허용하는 창을 얻으려면 먼저 클래스의 COleDropTarget
개체를 만든 다음 원하는 CWnd
개체에 대한 포인터를 사용하여 Register 함수를 유일한 매개 변수로 호출해야 합니다.
OLE를 사용하는 끌어서 놓기 작업에 대한 자세한 내용은 OLE 끌어서 놓기 문서를 참조하세요.
상속 계층 구조
COleDropTarget
요구 사항
헤더: afxole.h
COleDropTarget::COleDropTarget
클래스 COleDropTarget
의 개체를 생성합니다.
COleDropTarget();
설명
Register를 호출하여 이 개체를 창에 연결합니다.
COleDropTarget::OnDragEnter
커서를 창으로 처음 끌 때 프레임워크에서 호출됩니다.
virtual DROPEFFECT OnDragEnter(
CWnd* pWnd,
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
매개 변수
pWnd
커서가 입력하는 창을 가리킵니다.
pDataObject
삭제할 수 있는 데이터가 포함된 데이터 개체를 가리킵니다.
dwKeyState
한정자 키의 상태를 포함합니다. MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON 및 MK_RBUTTON 조합합니다.
point
클라이언트 좌표에서 커서의 현재 위치를 포함합니다.
Return Value
지점별로 지정된 위치에서 놓기를 시도할 경우 발생하는 효과입니다. 다음 중 하나 이상이 될 수 있습니다.
DROPEFFECT_NONE 삭제가 허용되지 않습니다.
DROPEFFECT_COPY 복사 작업이 수행됩니다.
DROPEFFECT_MOVE 이동 작업이 수행됩니다.
DROPEFFECT_LINK 삭제된 데이터에서 원래 데이터로의 링크가 설정됩니다.
DROPEFFECT_SCROLL 끌기 스크롤 작업이 발생하거나 대상에서 발생합니다.
설명
창에서 놓기 작업이 수행되도록 이 함수를 재정의합니다. 기본 구현에서는 기본적으로 DROPEFFECT_NONE 반환하는 CView::OnDragEnter를 호출합니다.
자세한 내용은 Windows SDK의 IDropTarget::D ragEnter 를 참조하세요.
COleDropTarget::OnDragLeave
끌어오기 작업이 적용되는 동안 커서가 창을 떠날 때 프레임워크에서 호출됩니다.
virtual void OnDragLeave(CWnd* pWnd);
매개 변수
pWnd
커서가 나가는 창을 가리킵니다.
설명
끌기 작업이 지정된 창을 떠날 때 특수 동작을 원하는 경우 이 함수를 재정의합니다. 이 함수의 기본 구현은 CView::OnDragLeave를 호출합니다.
자세한 내용은 Windows SDK에서 IDropTarget::D ragLeave 를 참조하세요.
COleDropTarget::OnDragOver
창 위로 커서를 끌 때 프레임워크에서 호출됩니다.
virtual DROPEFFECT OnDragOver(
CWnd* pWnd,
COleDataObject* pDataObject,
DWORD dwKeyState,
CPoint point);
매개 변수
pWnd
커서가 끝난 창을 가리킵니다.
pDataObject
삭제할 데이터가 포함된 데이터 개체를 가리킵니다.
dwKeyState
한정자 키의 상태를 포함합니다. MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON 및 MK_RBUTTON 조합합니다.
point
클라이언트 좌표에서 커서의 현재 위치를 포함합니다.
Return Value
지점별로 지정된 위치에서 놓기를 시도할 경우 발생하는 효과입니다. 다음 중 하나 이상이 될 수 있습니다.
DROPEFFECT_NONE 삭제가 허용되지 않습니다.
DROPEFFECT_COPY 복사 작업이 수행됩니다.
DROPEFFECT_MOVE 이동 작업이 수행됩니다.
DROPEFFECT_LINK 삭제된 데이터에서 원래 데이터로의 링크가 설정됩니다.
DROPEFFECT_SCROLL 끌기 스크롤 작업이 대상에서 발생하거나 발생 중임을 나타냅니다.
설명
이 함수는 창에서 삭제 작업이 수행되도록 재정의되어야 합니다. 이 함수의 기본 구현은 기본적으로 DROPEFFECT_NONE 반환하는 CView::OnDragOver를 호출합니다. 이 함수는 끌어서 놓기 작업 중에 자주 호출되므로 최대한 최적화해야 합니다.
자세한 내용은 Windows SDK에서 IDropTarget::D ragOver 를 참조하세요.
예시
DROPEFFECT COleContainerView::OnDragOver(COleDataObject* pDataObject,
DWORD dwKeyState, CPoint point)
{
UNREFERENCED_PARAMETER(pDataObject);
UNREFERENCED_PARAMETER(point);
DROPEFFECT de = DROPEFFECT_NONE;
//Determine the type of operation
if ((dwKeyState & MK_SHIFT) && (dwKeyState & MK_CONTROL))
de = DROPEFFECT_LINK;
else if (dwKeyState & MK_CONTROL)
de = DROPEFFECT_COPY;
else if (dwKeyState & MK_SHIFT)
de = DROPEFFECT_MOVE;
return de;
}
COleDropTarget::OnDragScroll
OnDragEnter 또는 OnDragOver를 호출하기 전에 프레임워크에서 호출하여 점이 스크롤 영역에 있는지 여부를 확인합니다.
virtual DROPEFFECT OnDragScroll(
CWnd* pWnd,
DWORD dwKeyState,
CPoint point);
매개 변수
pWnd
커서가 현재 끝난 창을 가리킵니다.
dwKeyState
한정자 키의 상태를 포함합니다. MK_CONTROL, MK_SHIFT, MK_ALT, MK_LBUTTON, MK_MBUTTON 및 MK_RBUTTON 조합합니다.
point
화면을 기준으로 커서의 위치를 픽셀 단위로 포함합니다.
Return Value
지점별로 지정된 위치에서 놓기를 시도할 경우 발생하는 효과입니다. 다음 중 하나 이상이 될 수 있습니다.
DROPEFFECT_NONE 삭제가 허용되지 않습니다.
DROPEFFECT_COPY 복사 작업이 수행됩니다.
DROPEFFECT_MOVE 이동 작업이 수행됩니다.
DROPEFFECT_LINK 삭제된 데이터에서 원래 데이터로의 링크가 설정됩니다.
DROPEFFECT_SCROLL 끌기 스크롤 작업이 대상에서 발생하거나 발생 중임을 나타냅니다.
설명
이 이벤트에 대해 특별한 동작을 제공하려는 경우 이 함수를 재정의합니다. 이 함수의 기본 구현에서는 CView::OnDragScroll을 호출합니다. 이 메서드는 DROPEFFECT_NONE 반환하고 커서를 창 테두리 내의 기본 스크롤 영역으로 끌면 창을 스크롤합니다.
COleDropTarget::OnDrop
삭제 작업이 발생할 때 프레임워크에서 호출됩니다.
virtual BOOL OnDrop(
CWnd* pWnd,
COleDataObject* pDataObject,
DROPEFFECT dropEffect,
CPoint point);
매개 변수
pWnd
커서가 현재 끝난 창을 가리킵니다.
pDataObject
삭제할 데이터가 포함된 데이터 개체를 가리킵니다.
dropEffect
사용자가 삭제 작업에 대해 선택한 효과입니다. 다음 중 하나 이상이 될 수 있습니다.
DROPEFFECT_COPY 복사 작업이 수행됩니다.
DROPEFFECT_MOVE 이동 작업이 수행됩니다.
DROPEFFECT_LINK 삭제된 데이터에서 원래 데이터로의 링크가 설정됩니다.
point
화면을 기준으로 커서의 위치를 픽셀 단위로 포함합니다.
Return Value
삭제에 성공하면 0이 아닌 경우 그렇지 않으면 0입니다.
설명
프레임워크는 먼저 OnDropEx를 호출 합니다. 함수가 삭제를 OnDropEx
처리하지 않으면 프레임워크는 이 멤버 함수를 OnDrop
호출합니다. 일반적으로 애플리케이션은 오른쪽 마우스 단추 끌어서 놓기를 처리하도록 보기 클래스에서 OnDropEx를 재정의합니다. 일반적으로 뷰 클래스 OnDrop 은 간단한 끌어서 놓기를 처리하는 데 사용됩니다.
기본적으로 FALSE를 반환하는 CView::OnDrop 호출의 COleDropTarget::OnDrop
기본 구현입니다.
자세한 내용은 Windows SDK에서 IDropTarget::D rop 을 참조하세요.
COleDropTarget::OnDropEx
삭제 작업이 발생할 때 프레임워크에서 호출됩니다.
virtual DROPEFFECT OnDropEx(
CWnd* pWnd,
COleDataObject* pDataObject,
DROPEFFECT dropDefault,
DROPEFFECT dropList,
CPoint point);
매개 변수
pWnd
커서가 현재 끝난 창을 가리킵니다.
pDataObject
삭제할 데이터가 포함된 데이터 개체를 가리킵니다.
dropDefault
사용자가 현재 키 상태에 따라 기본 놓기 작업에 대해 선택한 효과입니다. 그것은 DROPEFFECT_NONE 수 있습니다. 삭제 효과는 주의 섹션에 설명되어 있습니다.
dropList
드롭 소스에서 지원하는 드롭 효과 목록입니다. 삭제 효과 값은 비트 OR(|
) 연산을 사용하여 결합할 수 있습니다. 삭제 효과는 주의 섹션에 설명되어 있습니다.
point
화면을 기준으로 커서의 위치를 픽셀 단위로 포함합니다.
Return Value
지점으로 지정된 위치에서 놓기 시도에서 발생한 드롭 효과입니다. 삭제 효과는 주의 섹션에 설명되어 있습니다.
설명
프레임워크는 먼저 이 함수를 호출합니다. 삭제를 처리하지 않으면 프레임워크는 OnDrop을 호출합니다. 일반적으로 오른쪽 마우스 단추 끌어서 놓기를 지원하도록 보기 클래스에서 OnDropEx를 재정의합니다. 일반적으로 뷰 클래스 OnDrop 은 간단한 끌어서 놓기를 지원하는 경우를 처리하는 데 사용됩니다.
CView::OnDropEx 호출의 COleDropTarget::OnDropEx
기본 구현입니다. 기본적으로 CView::OnDropEx는 단순히 더미 값을 반환하여 OnDrop 멤버 함수를 호출해야 함을 나타냅니다.
놓기 효과는 삭제 작업과 관련된 작업을 설명합니다. 다음 드롭 효과 목록을 참조하세요.
DROPEFFECT_NONE 삭제가 허용되지 않습니다.
DROPEFFECT_COPY 복사 작업이 수행됩니다.
DROPEFFECT_MOVE 이동 작업이 수행됩니다.
DROPEFFECT_LINK 삭제된 데이터에서 원래 데이터로의 링크가 설정됩니다.
DROPEFFECT_SCROLL 끌기 스크롤 작업이 대상에서 발생하거나 발생 중임을 나타냅니다.
자세한 내용은 Windows SDK에서 IDropTarget::D rop 을 참조하세요.
COleDropTarget::Register
이 함수를 호출하여 OLE DLL에 창을 유효한 삭제 대상으로 등록합니다.
BOOL Register(CWnd* pWnd);
매개 변수
pWnd
놓기 대상으로 등록할 창을 가리킵니다.
Return Value
등록에 성공하면 0이 아닌 경우 그렇지 않으면 0입니다.
설명
삭제 작업을 수락하려면 이 함수를 호출해야 합니다.
자세한 내용은 Windows SDK의 RegisterDragDrop 을 참조하세요.
COleDropTarget::Revoke
삭제 대상 목록에서 제거하려면 Register 호출을 통해 삭제 대상으로 등록된 창을 삭제하기 전에 이 함수를 호출합니다.
virtual void Revoke();
설명
이 함수는 등록된 창에 대한 OnDestroy 처리기에서 자동으로 호출되므로 일반적으로 이 함수를 명시적으로 호출할 필요가 없습니다.
자세한 내용은 Windows SDK의 RevokeDragDrop 을 참조하세요.
참고 항목
MFC 샘플 HIERSVR
MFC 샘플 OCLIENT
CCmdTarget 클래스
계층 구조 차트
COleDropSource 클래스