1. 드래그앤 드랍을 받을 윈도우핸들에서,
DragAcceptFiles(TRUE); 를 선언한다.
아마 디폴트가 FALSE일텐데, 저걸 해주면 윈도우까지 드래그가 허용된다.
나는 뷰에서 진행할 예정에서, View 에서 onCreate 부분에서 선언해줬다
2. 해당 윈도우에서 View에서 WM_DROPFILES 이벤트를 생성한다.
void CDragNDropTestView::OnDropFiles(HDROP hDropInfo)
{
UINT uiRet = DragQueryFile(hDropInfo,-1,NULL, NULL); // 드래그한 파일의 개수를 확인한다.
if ( uiRet == 1)
{
CString sTemp;
DragQueryFile(hDropInfo, 0, sTemp.GetBuffer(MAX_PATH), MAX_PATH);
AfxMessageBox(sTemp); // 오픈한 파일 패스를 에디트에 표시합니다.
}
else if(uiRet > 1) // 파일이 한개 이상일 경우
{
MessageBox("Cannot open multiple files!");
}
CView::OnDropFiles(hDropInfo);
}
SDI와 MDI 구분을 하고,
View와 컨트롤 차이를 더 알아봐야겠다
'개발 > MFC' 카테고리의 다른 글
윈도우 사이즈 변경 시, 컨트롤 동적 크기 변경 (0) | 2019.01.06 |
---|