MFC File Icon Drag and Drop

Programming/MFC 2016. 8. 30. 11:19 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MFC File Icon Drag and Drop










드래그앤드랍기능을 쓰고 싶은


Dialog 나 ListControl 을 리소스 뷰에서 선택한다.











속성 항목


[동작] [Accept Files] 항목을 True 로 바꾼다.



Files 을 드래그앤드랍으로 받을 수 있게 된다.












해당 컴포넌트에 드래그앤드랍이 발생할 경우


OnDropFiles(HDROP hDropInfo)


함수로 메시지가 들어오게 된다.











해당 함수를 오버라이딩 하는 방법은


해당 컴포넌트의 Dialog 클래스를


클래스 뷰에서 선택하고 속성 창을 연다.






WM_DROPFILES 메시지에 OnDropFiles 를 활성화 시켜준다.







그러면 Dialog 클래스 cpp 파일에 OnDropFiles 함수가 생성된다.






다음 코드를 OnDropFiles(HDROP hDropInfo) 함수에 추가하여 실행하여 본다.





  int nFiles;


char szPathName[MAX_PATH];  // 파일 경로명이 들어간다.


CString strFileName;


// 드래그앤드롭된 파일의 갯수

nFiles = ::DragQueryFile(hDropInfo, 0xFFFFFFFF, szPathName, MAX_PATH);


for (int i = 0; i < nFiles; i++)

{

// 파일의 경로 얻어옴

::DragQueryFile(hDropInfo, i, szPathName, MAX_PATH);

MessageBox(szPathName, "DropAndDropFile");

}