다음을 통해 공유


트리 컨트롤 끌어서 놓기 작업

트리 컨트롤(CTreeCtrl)은 사용자가 항목을 끌기 시작하면 알림을 보냅니다. 컨트롤은 사용자가 마우스 왼쪽 단추로 항목을 끌기 시작할 때 TVN_BEGINDRAG 알림 메시지를 보내고 사용자가 오른쪽 단추로 끌기 시작할 때 TVN_BEGINRDRAG 알림 메시지를 보냅니 다. 트리 컨트롤에 TVS_DISABLEDRAGDROP 스타일을 제공하여 트리 컨트롤이 이러한 알림을 보내지 못하도록 방지할 수 있습니다.

CreateDragImage 멤버 함수를 호출하여 끌기 작업 중에 표시할 이미지를 가져옵니다. 트리 컨트롤은 끌 항목의 레이블에 따라 끌기 비트맵을 만듭니다. 그런 다음 트리 컨트롤은 이미지 목록을 만들고, 비트맵을 추가하고, CImageList 개체에 대한 포인터를 반환합니다.

항목을 실제로 끄는 코드를 제공해야 합니다. 일반적으로 이미지 목록 함수의 끌기 기능을 사용하고 끌기 작업이 시작된 후 전송된 WM_MOUSEMOVE 및 WM_LBUTTONUP(또는 WM_RBUTTONUP) 메시지를 처리하는 작업이 포함됩니다. 이미지 목록 함수에 대한 자세한 내용은 Windows SDK의 MFC 참조이미지 목록의 CImageList를 참조하세요. 트리 컨트롤 항목을 끄는 방법에 대한 자세한 내용은 Windows SDK에서 트리 뷰 항목 끌기를 참조하세요.

트리 컨트롤의 항목이 끌어서 놓기 작업의 대상이 될 경우 마우스 커서가 대상 항목에 있는 시기를 알아야 합니다. HitTest 멤버 함수를 호출하여 확인할 수 있습니다. 마우스 커서의 현재 좌표를 포함하는 TVHITTESTINFO 구조체의 주소 또는 점 및 정수를 지정합니다. 함수가 반환되면 정수 또는 구조체에는 트리 컨트롤을 기준으로 마우스 커서의 위치를 나타내는 플래그가 포함됩니다. 커서가 트리 컨트롤의 항목 위에 있는 경우 구조에는 항목의 핸들도 포함됩니다.

SetItem 멤버 함수를 호출하여 상태를 TVIS_DROPHILITED 값으로 설정하여 항목이 끌어서 놓기 작업의 대상임을 나타낼 수 있습니다. 이 상태의 항목은 끌어서 놓기 대상을 나타내는 데 사용되는 스타일로 그려집니다.

참고 항목

CTreeCtrl 사용
컨트롤