Visual C++ MFC Drag & Drop File

CTestApp::InitInstance()
{
    // 드래그 앤 드롭을 활성화 시킨다.
    m_pMainWnd->DragAcceptFiles(TRUE);
    return TRUE;
}

void CTestMainFrame::OnDropFiles(HDROP hDropInfo)
{
    // Index Value를 0xFFFFFFFF로 주면 드랍된 파일의 총 갯수가 리턴.
    int nFile = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);
    int i = 0;
    char szFilePath[256];
    if (nFile > 0)
    {
        for (i=0; i<nFile; i++)
        {
            // 파일 알아내기
            DragQueryFile(hDropInfo, i, szFilePath, 256);
        }
    }
    // 현재 드래그 앤 드롭된 파일의 경로를 알려준다.
    CTestDoc *pDoc = (CTestDoc*)GetActiveDocument();
    pDoc->OnFileOpenByDragAndDrop(szFilePath);

    CFrameWnd::OnDropFiles(hDropInfo);
    // 드롭된 정보 없애기
    DragFinish(hDropInfo);
}

comments:

댓글 쓰기