이미 다들 알고있는데 올리는것 아닌가 모르겠네요
제가 방금 검색해 봤는데 이방법은 나오지 않는것 같더라구요
혹 누군가 필요하실까 해서 함 올려봅니다.
@원리
1. 기본 원리는  팁&트릭과  Q&A에 검색하면 나오는  탐색기 Files 드래그앤드롭 방법과 똑같습니다.
2. 단 API   DragAcceptFiles 로  핸들을 등록할때   Form의 핸들이 아닌 특정 Control의  핸들을 등록합니다.
3. 그런 후  그 특정 Control의 WindowProc를 서브 클래싱해서 WM_DROPFILES 를 잡아 처리합니다
@장점 
1. DragDrop시 Control 에 따라 다른 처리를 할수 있습니다.
2. 그리고 DragDrop Control위에서먼 Drop  Accept  로 커서가 바뀝니다.
   ( Form핸들을 등록하면  폼위에서는 어디든  Drop  Accept  로 커서로 나타남)
==================샘플==============================================================
아래는 TEdit  하나와 TMemo 두개를 DragAcceptFiles로 등록해서 
탐색기에서 파일을 드래그&드랍할때  각 컨트롤에 따라 다르게 처리하도록 되어있는코드입니다.
TWndMethod OrigProc1,OrigProc2,OrigProc3;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//    DragAcceptFiles(Handle, true); //폼전체를 탐색기 DragDrop정보를 받는다.
    DragAcceptFiles(Edt_FileName->Handle, true);  //TEdit 의 Handle을 등록
    OrigProc3 = Edt_FileName->WindowProc;
    Edt_FileName->WindowProc = EditProc1;
    DragAcceptFiles(Mmo_HexStr->Handle, true);  //TMemo 의 Handle을 등록
    DragAcceptFiles(Pg_CnvRslt->Handle, true);
    OrigProc1 = Mmo_HexStr->WindowProc;
    Mmo_HexStr->WindowProc = MemoProc1;
    OrigProc2 = Pg_CnvRslt->WindowProc;        //또다른 TMemo 의 Handle을 등록
    Pg_CnvRslt->WindowProc = MemoProc2;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EditProc1(TMessage& Msg)
{
     if(Msg.Msg==WM_DROPFILES)
     {
        AddFileToEdit((HANDLE)Msg.WParam);
     }
     OrigProc3( Msg );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MemoProc1(TMessage& Msg)
{
     if(Msg.Msg==WM_DROPFILES)
     {
        AddFileToView((HANDLE)Msg.WParam);
     }
     OrigProc1( Msg );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MemoProc2(TMessage& Msg)
{
     if(Msg.Msg==WM_DROPFILES)AddFileToView((HANDLE)Msg.WParam);
     OrigProc2( Msg );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WMDropFiles(TWMDropFiles &Msg)
{
    AddFilesToList((HANDLE)Msg.Drop);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AddFileToView(HANDLE hDrop)
{
    AnsiString FilePath;
    FilePath.SetLength(MAX_PATH);
    int FileCount = DragQueryFile(hDrop, 0xFFFFFFFF, FilePath.c_str(), MAX_PATH);
    if(FileCount)
    {
        DragQueryFile(hDrop, 0, FilePath.c_str(), MAX_PATH);
        Edt_FileName->Text=FilePath;
    }
    DragFinish(hDrop);
    Btn_ChangeClick(Btn_Change);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AddFileToEdit(HANDLE hDrop)
{
    AnsiString FilePath;
    FilePath.SetLength(MAX_PATH);
    int FileCount = DragQueryFile(hDrop, 0xFFFFFFFF, FilePath.c_str(), MAX_PATH);
    if(FileCount)
    {
        DragQueryFile(hDrop, 0, FilePath.c_str(), MAX_PATH);
        Edt_FileName->Text=FilePath;
    }
    DragFinish(hDrop);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AddFilesToList(HANDLE hDrop)
{
    AnsiString FilePath;
    FilePath.SetLength(MAX_PATH);
    int FileCount = DragQueryFile(hDrop, 0xFFFFFFFF, FilePath.c_str(), MAX_PATH);
    for(int i=0; iText=FilePath; //ListBox1->Items->Add(ExtractFileName(FilePath));
    }
    DragFinish(hDrop);
}
//---------------------------------------------------------------------------