[C++ Builder] ファイルのドラッグ&ドロップを受け付ける
・「private:    // ユーザー宣言」に下記の行を追加
    void __fastcall WMDropFiles(TWMDropFiles &Msg);
・「public:     // ユーザー宣言」に下記の行を追加
    BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFiles);
    END_MESSAGE_MAP(TForm)


void __fastcall TForm1::FormCreate(TObject *Sender)
{
    DragAcceptFiles( Handle,TRUE );     /*ドラッグ受取可*/
}


void __fastcall TForm1::WMDropFiles(TWMDropFiles &Msg)
{
        char    fname[MAX_PATH];
        int     ii, cnt;

    Application->BringToFront();

    cnt = DragQueryFile( (HDROP)Msg.Drop,0xFFFFFFFF,NULL,0 );
    for( ii=0; ii<cnt; ii++ ){
        // ファイル名を得る
        DragQueryFile( (HDROP)Msg.Drop,ii,fname,MAX_PATH );
        ShowMessage( fname );
    }
    DragFinish( (HDROP)Msg.Drop );
}
      

・インターネット上の情報や書籍の内容を一部参考に作成してます。
・コーディング内容は著作権フリーですが、使用する場合は自己責任にてお願いします。
・記述内容に問題点や改善点がありましたらこちらまでお願いします。

サンプル集の一覧に戻る