2008/01/16

프로그램에 Drag&Drop 으로 파일 받기

C++ Builder Code
Header

void __fastcall OnWMDropFiles(TWMDropFiles &msg);

BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, OnWMDropFiles)
END_MESSAGE_MAP(TForm)


Source

Constructor
DragAcceptFiles(Handle,true);


void __fastcall TfrmMain::OnWMDropFiles(TWMDropFiles &msg)
{
char fullPath[MAX_PATH];

// Drop 된 파일 수 가져오기
UINT fileCount;
fileCount = DragQueryFile((HDROP)msg.Drop, 0xffffffff, NULL, 0);

for(UINT i=0; i < fileCount; i++)
{
// 파일이름 가져오기
DragQueryFile((HDROP)msg.Drop,i,fullPath,MAX_PATH);
}

DragFinish((HDROP)msg.Drop);
}


Visual C++ Code
DragAcceptFiles(TRUE);

OnDropFiles(HDROP hDropInfo)
{
UINT uNumFiles;
CHAR szNextFile[MAX_PATH];

// Drop된 파일 수 가져오기
uNumFiles = DragQueryFile ( hDropInfo, -1, NULL, 0 );

for ( UINT uFile = 0; uFile < uNumFiles; uFile++ )
{
// 파일이름 가져오기
if ( DragQueryFile( hDropInfo, uFile, szNextFile, MAX_PATH ) > 0)
{
:
}
}

DragFinish ( hDropInfo );
}

Original Post : http://neodreamer-dev.tistory.com/37

No comments :

Post a Comment