파일 드로그앤 드롭 이벤트 처리
파일 탐색기 등에서 파일을 드래그 & 드롭해서 내가 만든 프로그램에 놓았을 때,
1. ON_WM_DROPFILES() // 클래스 위저드에서 WM_DROPFILES를 재정의한다.
2. DragAcceptFiles();
BEGIN_MESSAGE_MAP(CLeftView, CTreeView)
//{{AFX_MSG_MAP(CLeftView)
ON_WM_DROPFILES() // 클래스 위저드에서 WM_DROPFILES를 재정의한다.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CLeftView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
// 파일 드래그 & 드롭을 위해 불러준다.
DragAcceptFiles();
}
void CLeftView::OnDropFiles(HDROP hDropInfo)
{
int nFiles;
char szPathName[MAX_PATH];
CString strFileName;
// 드롭된 파일의 갯수
nFiles = ::DragQueryFile( hDropInfo, 0xFFFFFFFF, szPathName, MAX_PATH );
for(int i = nFiles-1 ; i >= 0; i--)
{
// 파일의 경로 얻어옴
::DragQueryFile(hDropInfo, i, szPathName, MAX_PATH);
AfxMessageBox( szPathName );
}
::DragFinish(hDropInfo);
CTreeView::OnDropFiles(hDropInfo);
}