• ベストアンサー

MFCを使わずファイルをドラッグアンドドロップ

エクスプローラーなどからドラッグしてきたファイルのパス一覧を MFCを使わず取得したいのですが、 どうすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • A__
  • ベストアンサー率47% (22/46)
回答No.1

実行ファイルへのドロップの許可はWS_EX_ACCEPTFILESです。 CreateWindowEx(WS_EX_ACCEPTFILES, …); case WM_DROPFILES:  UINT uint;  HDROP hdrop;  hdrop = (HDROP)wParam;  //DragQueryFile()が返すドロップされたファイル数を受け取る  uint = DragQueryFile(hdrop, -1, 0, 0);  for(int i=0; i<uint; i++)   DragQueryFile(hdrop, i, mylist[i], MAX_PATH);  DragFinish(hdrop);

sha-girl
質問者

お礼

早速回答頂きありがとうございます。 助かりました。

関連するQ&A

  • ファイルのドラッグアンドドロップ

    Visual C++6.0で ListBOX上にファイルをドラッグアンドドロップ させて、そのファイルのパスの一覧を取得したいのですが どのようにすればいいのでしょうか?

  • MFCのドラッグ&ドロップについて

    閲覧して頂きありがとうございます。 現在、WindowsXPでvc++6.0のMFC(ダイアログベース)を利用してダイアログを作り エディットボックスに入力されたファイルパスを利用して指定のファイルを 開く簡単なアプリを作ろうとしています。 そこでダイアログのエディットボックスの部分にファイルをドラッグ&ドロップすると エディットボックスにドロップされたファイルのパスを表示させようとしていますが、中々できません。 状況としては、グループボックスの中にエディットボックスを作成し、 グループボックスを右クリック→プロパティ→ドラッグドロップを許可 をすることによりグループボックスにドロップの許可を与えることはできていますが ドロップのイベントを拾うことができておりません。 ※参考サイトなどをみると「WM_DROPFILES」というハンドラがあるみたいなのですが  どこにも見当たらないです。。。 何か不明な点などあれば補足させて頂きますので、よろしくお願いします。

  • ドラッグ&ドロップについてです。(VB.NET)

    フォーム上に「PictureBox」コントロールを置いた状態で実行し、その「PictureBox」にデスクトップ等からファイルやフォルダをドラッグ、ドロップしまして、そのファイルやフォルダのパス名を取得するにはどうすればいいですか? そのプログラムのサンプルがあるサイトでもいいです。

  • 実行ファイルへのドラッグ&ドロップ起動

    VB6 WindowsXP 実行ファイルにファイルをドラッグ&ドロップして起動します。 Private Sub Form_Load() Dim FILE_NAME As String Dim EXE_PATH As String FILE_NAME = Mid(Command, 2, Len(Command) - 2) EXE_PATH = '********** End Sub ファイルの名前・パスは取得できるのですが、実行ファイルのパスが取得できずに困っています。 実行ファイルを通常起動した場合はCurDirで取得できますが、ドラッグ&ドロップ起動をした場合、CurDirではログインユーザーディレクトリを返してしまいます。 宜しくお願いします。

  • VBSを起動後にファイルをドラッグ&ドロップ

    [環境] Windows 7 お世話になります。 完全にお遊び程度の内容になりますが、 VBSでドラッグ&ドロップしたファイルのファイル名を取得するプログラムを 作成しているのですが、 検索してもそれらしき方法が見つからずヤキモキしています。 まだ起動していないVBSファイルに対してのドラッグ&ドロップする方法であれば 結構HITするのですが、そうではなく私がやろうとしているのは、 既に起動しているVBSのアプリにドラッグ&ドロップをしたファイル名を 取得したいのです。(ちなみに取得したいのはフルパス) 取得したファイル名はInputBoxか何かに表示する程度でいいのですが、 案外むずかしかったりするのでしょうか? ご回答よろしくお願いします。

  • エクセルでドラッグアンドドロップで読み取り専用として開く

    Excel2000です。 エクスプローラ上にエクセルのファイル(.xls)が表示されているとします。 そのファイルをExcel上にドラッグアンドドロップしますと、ファイルが開かれます。 そのときに、エクスプローラ上のそのファイルのプロパティで「読み取り専用」になっているか否かにかかわらず、読み取り専用として開くにはどうすればよいですか? なお、エクセルのメニューの ファイル―開く で出てくるダイアログボックス(「ファイルを開く」)から、読み取り専用として開く方法はわかっています。 その「読み取り専用として開く」と同じことを、ドラッグアンドドロップだけでしたいのです。 OSはWindows98SEです。

  • VBAでドラッグ・アンド・ドロップ

    エクスプローラからファイルを選択して、ワードもしくはエクセルにD&Dしファイル名を取得したいと思います。 VBだとOleDragDropでいけるようですが、VBAにはこのイベントがありません。 ということは、無理ってことなのでしょう赤?

  • アプリケーション間のドラッグアンドドロップ

    お世話になります。VC++2005を使用しています。 ウィンドウを生成し、その中に複数の画像をそれぞれ子ウィンドウで表示し、 その子ウィンドウを他の実行ファイルのウィンドウにドラッグアンドドロップして ファイル名を渡したいと考えています。 また、子ウィンドウをWindowsのエクスプローラのような感覚で 複数選択したりできたらと思っています。 このようなことは可能でしょうか? また可能でしたらキーワードだけでも教えていただけないでしょうか。

  • ドラッグしたファイルのパスを取得したい

    Windows2000(sp3) VisualBasic6.0(sp5) で開発しています。 テキストボックス付きのあるアプリケーションを作成し、そのアプリのテキストボックス上へ、エクスプローラーからファイルをドラッグ&ドロップすると、そのファイルのフルパスを表示する。 ということをしたいと考えています。 例 コマンドプロンプトに、エクスプローラーからファイルをドラッグ&ドロップすると、そのファイルのパス付きの名称が表示される。 良い方法をご存知の方いらっしゃいましたら教えてください。 よろしくお願いします。

  • ドラッグアンドドロップができない

    今日からいきなりファイルのドラッグアンドドロップができなくなりました。 他の設定は何もいじっていないので原因がわかりません。 原因と対処がわかる方教えてください。

専門家に質問してみよう