• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++でドラッグドロップ)

VC++でドラッグドロップ

このQ&Aのポイント
  • リストボックスにフォルダをドラッグしてそのフォルダの中身をリストに表示する方法について質問です。
  • リストボックスにフォルダをドラッグしてそのフォルダの中身を取得する方法についてご教授願います。
  • VC++でリストボックスにフォルダをドラッグしてその中身を取得する処理についてご教授ください。

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>1.i=0としているのに、最初からi=numの数になってしまう for (int i = 0; i < num; i++);{ 空ループになっています。 iの値をnumまで増やしてから、次のブロックを実行していますから、 dwSize = ::DragQueryFile(hdrop , i, szPath, MAX_PATH+1);を実行する時には「i=0としているのに、最初からi=numの数になってしまう」は当然かと思われます。 for (int i = 0; i < num; i++){ の間違いでしょう。 >2.二つ目のDragQueryFileのiを1にしても戻値(ファイル名のサイズ)は0となって取得していない 「フォルダを1つ」ドラッグ&ドロップしたのであれば、DragQueryFile()の第2引数は0の文しかデータはないのではないでしょうか? 「ファイルやフォルダを『複数』」の場合は取得できると思いますが。 フォルダをドラッグ&ドロップした場合、受け取れるのはそのフォルダ名までです。 中にあるファイル名/フォルダ名は自分で取得する必要があります。 FindFirstFile()等で取得できるでしょう。

iec1128
質問者

お礼

アドバイスありがとうございます。 for部分は初歩的なことでした。 その部分を直したら二つ目も直りました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう