프로그램에서 외부 파일 드래그 앤 드롭 처리

1101 단어
많은 소프트웨어들이 외부 파일의 드래그를 지원한다. 예를 들어 winamp 등 오디오 재생 소프트웨어는 mp3를 프로그램 창에 직접 드래그하면 바로 재생을 시작할 수 있는데 이 기능을 실현하는 것은 사실 매우 간단하다.먼저 헤더 파일에 메시지 매핑을 넣습니다.
private: // User declarations
    void __fastcall DragDropFiles(TMessage &msg); //          
public:  // User declarations
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_DROPFILES, TMessage, DragDropFiles);
    END_MESSAGE_MAP(TForm); 

Form의 Oncreate 이벤트에 드래그 앤 드롭을 허용하는 코드를 먼저 추가합니다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    DragAcceptFiles(Handle, true);
}
//  DragDropFiles
void __fastcall TForm1::DragDropFiles(TMessage &msg)
{
    char FileName[_MAX_PATH];
    int i, Sum;
    Sum = DragQueryFile( HDROP(msg.WParam), 0xFFFFFFFF, NULL, 0);

    try {
        for(i=0; i<Sum; i++) {
            DragQueryFile(HDROP(msg.WParam), i, FileName, _MAX_PATH);
            Memo1->Lines->AddStrings(Files); //       Memo1 
        }
    }
    __finally {
        DragFinish(HDROP(msg.WParam));
    }
}

완성, 파일 이름을 얻었으니 어떻게 처리해야 할지 구체적인 기능에 따라 결정된다.

좋은 웹페이지 즐겨찾기