フリーソフト

« [BCB] アラインメントの設定 | トップページ | [BCB] MessageBoxでデフォルトのボタンを指定する »

[BCB] エクスプローラからのドラッグ & ドロップに対応する

//ヘッダファイル
class TForm1 : public TForm
{
    :

private:
    //実際にメッセージを処理する関数の宣言
    //関数の中身はソースに自分で書く
    void __fastcall WMDropFile(TWMDropFiles &Msg);

BEGIN_MESSAGE_MAP
    //捕まえたいメッセージと、それを処理する関数を登録
    VCL_MESSAGE_HANDLER(WM_DROPFILES, TWMDropFiles, WMDropFile)
END_MESSAGE_MAP(TComponent)

};

//ソースファイル

void __fastcall TForm1::FormCreate(TObject *Sender)
begin
  DragAcceptFiles(Handle, true);
end;

void __fastcall TForm1::WMDropFile(TWMDropFiles &Msg)
{
  //ドロップされたファイルを取得
  int Count=DragQueryFile((void *)Msg.Drop, -1, NULL, 0);
  for (int i=0;i<Count;i++) {
    char Filename[MAX_PATH]={0};
    DragQueryFile((void *)Msg.Drop, i, Filename, MAX_PATH);
      
    //Filenameを処理
  }
  DragFinish((void *)Msg.Drop);
}

« [BCB] アラインメントの設定 | トップページ | [BCB] MessageBoxでデフォルトのボタンを指定する »

C++Builder」カテゴリの記事

システム関連」カテゴリの記事