IDropTarget::D ragOver 메서드(oleidl.h)
사용자에게 대상 피드백을 제공하고 드롭 효과를 DoDragDrop 함수에 전달하여 드롭백의 효과를 원본으로 전달할 수 있습니다.
구문
HRESULT DragOver(
[in] DWORD grfKeyState,
[in] POINTL pt,
[in, out] DWORD *pdwEffect
);
매개 변수
[in] grfKeyState
키보드의 키보드 한정자 키의 현재 상태입니다. 유효한 값은 플래그 MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON 및 MK_RBUTTON 조합할 수 있습니다.
[in] pt
화면 좌표의 현재 커서 좌표를 포함하는 POINTL 구조체입니다.
[in, out] pdwEffect
입력에서 DoDragDrop 함수의 pdwEffect 매개 변수 값에 대한 포인터입니다. 반환할 때 드롭 작업의 결과를 나타내는 DROPEFFECT 플래그 중 하나를 포함해야 합니다.
반환 값
이 메서드는 성공에 대한 S_OK 반환합니다. 다른 가능한 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
예기치 않은 오류가 발생했습니다. |
|
pdwEffect 값이 잘못되었습니다. |
|
이 작업에 사용할 수 있는 메모리가 부족했습니다. |
설명
DragOver를 직접 호출하지 않습니다. DoDragDrop 함수는 사용자가 지정된 대상 창에서 마우스를 이동할 때마다 이 메서드를 호출합니다. DoDragDrop 은 끌어서 놓기 작업이 취소되거나, 사용자가 대상 창에서 마우스를 끌거나, 놓기를 완료한 경우 루프를 종료합니다.
IDropTarget::D ragOver를 구현할 때 IDropTarget::D ragEnter와 유사한 기능을 제공해야 합니다. 한정자 키의 상태와 함께 데이터 개체의 형식 및 매체를 정의하는 FORMATETC 를 검사하여 대상에 데이터를 삭제하는 효과를 결정해야 합니다. 마우스 위치는 낙하 효과를 결정하는 역할을 할 수도 있습니다. 다음 한정자 키는 삭제 결과에 영향을 미칩니다.
키 조합 | User-Visible 피드백 | 놓기 효과 |
---|---|---|
CTRL + SHIFT | = | DROPEFFECT_LINK |
CTRL | + | DROPEFFECT_COPY |
키 없음 또는 SHIFT | 없음 | DROPEFFECT_MOVE |
pdwEffect의 DoDragDrop을 통해 드롭백의 효과를 원본으로 전달합니다. 그런 다음 DoDragDrop 함수는 IDropSource::GiveFeedback을 호출하여 원본 애플리케이션이 사용자에게 적절한 시각적 피드백을 표시할 수 있도록 합니다.
IDropTarget::D ragOver에 입력할 때 pdwEffect 매개 변수는 DoDragDrop 함수의 pdwOkEffect 매개 변수에 전달된 허용된 효과로 설정되어야 합니다. IDropTarget::D ragOver 메서드는 이러한 효과 중 하나를 선택하거나 삭제를 사용하지 않도록 설정할 수 있어야 합니다.
반환 시 pdwEffect 는 DROPEFFECT 플래그 중 하나로 설정됩니다. 그런 다음 이 값은 DoDragDrop의 pdwEffect 매개 변수에 전달됩니다. 끌어간 데이터를 대상에 복사하거나, 원본 데이터에 대한 링크를 만드는 DROPEFFECT_LINK, 끌어서 놓은 데이터를 원본 애플리케이션에서 대상으로 영구적으로 이동할 수 있도록 DROPEFFECT_MOVE 적절한 값이 DROPEFFECT_COPY.
대상 창에서 적절한 시각적 피드백을 제공할 수도 있습니다. IDropTarget::D ragOver 또는 초기 IDropTarget::DragEnter에 대한 이전 호출에서 이미 표시된 대상 피드백이 있을 수 있습니다. 이 피드백이 더 이상 적절하지 않으면 제거해야 합니다.
효율성상의 이유로 데이터 개체는 IDropTarget::D ragOver에 전달되지 않습니다. IDropTarget::D ragEnter에 대한 최신 호출에서 전달된 데이터 개체를 사용할 수 있으며 사용할 수 있습니다.
IDropTarget::D ragOver가 작업을 완료하면 DoDragDrop 함수는 IDropSource::GiveFeedback을 호출하여 원본 애플리케이션이 사용자에게 적절한 시각적 피드백을 표시할 수 있도록 합니다.
구현자에 대한 참고 사항
이 함수는 DoDragDrop 루프 중에 자주 호출되므로 DragOver 메서드의 구현을 최대한 최적화하는 것이 좋습니다.요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | oleidl.h |