다음을 통해 공유


이미지 목록에서 이미지 끌기

CImageList 에는 화면에서 이미지를 끌기 위한 함수가 포함되어 있습니다. 끌기 함수는 커서 깜박임 없이 이미지를 컬러로 부드럽게 이동합니다. 마스킹된 이미지와 마스킹되지 않은 이미지를 모두 끌 수 있습니다.

BeginDrag 멤버 함수는 끌기 작업을 시작합니다. 매개 변수에는 끌 이미지의 인덱스 및 이미지 내의 핫 스폿 위치가 포함됩니다. 핫 스폿은 끌기 함수가 이미지의 정확한 화면 위치로 인식하는 단일 픽셀입니다. 일반적으로 애플리케이션은 마우스 커서의 핫 스폿과 일치하도록 핫 스폿을 설정합니다. DragMove 멤버 함수는 이미지를 새 위치로 이동합니다.

DragEnter 멤버 함수는 창 내에서 끌기 이미지의 초기 위치를 설정하고 위치에 이미지를 그립니다. 매개 변수에는 이미지를 그릴 창에 대한 포인터와 창 내에서 초기 위치의 좌표를 지정하는 점이 포함됩니다. 좌표는 클라이언트 영역이 아닌, 창의 왼쪽 상단 모서리를 기준으로 합니다. 좌표를 매개 변수로 사용하는 모든 이미지 끌기 함수도 마찬가지입니다. 즉, 좌표를 지정할 때 테두리, 제목 표시줄 및 메뉴 모음과 같은 창 요소의 너비를 보정해야 합니다. 호출DragEnter할 때 NULL 창 핸들을 지정하는 경우 끌기 함수는 바탕 화면 창과 연결된 디바이스 컨텍스트에서 이미지를 그리고 좌표는 화면의 왼쪽 위 모서리를 기준으로 합니다.

DragEnter 는 끌기 작업 중에 지정된 창에 대한 다른 모든 업데이트를 잠깁니다. 끌어서 놓기 작업의 대상을 강조 표시하는 등 끌기 작업 중에 그리기를 수행해야 하는 경우 DragLeave 멤버 함수를 사용하여 끌어온 이미지를 일시적으로 숨길 수 있습니다. DragShowNoLock 멤버 함수를 사용할 수도 있습니다.

이미지 끌기가 완료되면 EndDrag를 호출합니다.

SetDragCursorImage 멤버 함수는 지정된 이미지(일반적으로 마우스 커서 이미지)를 현재 끌기 이미지와 결합하여 새 끌기 이미지를 만듭니다. 끌기 함수는 끌기 작업 중에 새 이미지를 사용하므로 Windows ShowCursor 함수를 사용하여 호출 SetDragCursorImage후 실제 마우스 커서를 숨겨야 합니다. 그렇지 않으면 끌기 작업을 하는 동안 시스템에 마우스 커서가 두 개 있는 것처럼 보일 수 있습니다.

애플리케이션이 호출 BeginDrag될 때 시스템은 임시 내부 이미지 목록을 만들고 지정된 끌기 이미지를 내부 목록에 복사합니다. GetDragImage 멤버 함수를 사용하여 임시 끌기 이미지 목록에 대한 포인터를 검색할 수 있습니다. 또한 이 함수는 현재 끌기 위치와 끌기 위치를 기준으로 끌어 온 이미지의 오프셋을 검색합니다.

참고 항목

CImageList 사용
컨트롤