- 프로그램의 초기화시에 DragAcceptFiles(hWnd, TRUE) 함수를 호출한다. 첫 번째 인자인 hWnd는 드롭의 타겟이 되는 윈도우의 핸들이다.
혹은 다이얼로그(윈도우)의 리소스에서 Accept Files 을 true로 둔다. 탐색기로부터 파일이 드롭되는 순간에 WM_DROPFILES 메시지가 날라온다. 이를 처리한다.
혹은 해당 다이얼로드(윈도우)의 클래스에서 WM_DROPFILES 를 재정의한다.case WM_DROPFILES : { POINT pt; // 어느 위치에 드롭되었는지 그 항목을 알아낸다. if (DragQueryPoint((HDROP)wParam, &pt)) { UINT i = 0; // 모두 몇 개의 파일이 드롭되었는지 알아낸다. // 만일 폴더가 드롭되었다면 폴더의 이름만 넘어온다. UINT uCount = DragQueryFile((HDROP)wParam, 0xFFFFFFFF, NULL ,0); for(i = 0;i < uCount;i++) { // 드롭된 파일의 이름을 알아온다. DragQueryFile((HDROP)wParam, i, buffer ,255); // 드롭된 파일 이름을 출력해본다. MessageBox(hWnd, buffer, "File Name", MB_OK); } } // drag and drop 작업을 끝낸다. DragFinish((HDROP)wParam); break; }
- Drag&drop을 더 사용할 필요가 없어지면 DragAcceptFiles를 호출한다.
DragAcceptFiles(hWnd, FALSE);
[VC] 파일 드래그앤드롭 (Drag Drop)
2013. 6. 6. 09:29