※ ChatGPTを利用し、要約された質問です(原文:VC++2005 windowsフォームアプリでドラッグ&ドロップを実現する方法)
VC++2005 windowsフォームアプリでドラッグ&ドロップを実現する方法
このQ&Aのポイント
VC++2005のwindowsフォームアプリケーションにおいて、ドラッグ&ドロップを実現する方法を教えてください。
質問者は、表題の方法について調べたが、エラーの解決方法がわからないため質問している。
質問者は、dragdrop関数内でファイルのパスを取得する部分でエラーが解決できず、解決方法や取得方法を知りたいとしている。
VC++2005 windowsフォームアプリでドラッグ&ドロップを実現する方法
お世話になっております。
表題についていろいろ調べたのですがエラーの解決方法が見つからないため、質問させてください。
環境はVC++2005 CLD windowsフォームアプリケーション です。
貼り付けたリストボックスにtxtファイルをドラッグドロップして中身を取り出したいのですが、dragdrop関数内で、ファイルのパスを抜き出す部分でエラーが解決できません。
環境に合わせて下記のようなdragdrop関数を作成中です。
System::Void Form1::commandListBox_DragDrop(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) {
if(e ->Data ->GetDataPresent(DataFormats::FileDrop)){ // ファイルドロップのとき
std::string files[] = (std::string[])(e->Data->GetData(DataFormats::FileDrop));
}
}
最後の行はMSDNなどで書かれていた
string[] files = (string[])(e.Data.GetData(DataFormats.FileDrop));
となっている部分を参考にしているつもりですが、この部分で下記のエラーがでます。
1>.\mySrc\tab0.cpp(45) : error C2440: '型キャスト' : 'System::Object ^' から 'std::string []' に変換できません。
1> 配列型への変換はありませんが、参照またはポインタから配列への変換があります。
1>.\mySrc\tab0.cpp(45) : error C2075: 'files' : 配列の初期化には中かっこ ({}) が必要です。
このエラーの解決方法か、ドラッグドロップしたファイルのパスを取得する方法をご教授頂ければ幸いでございます。
よろしくお願いいたします。
お礼
教えていただいたとおりで実現できました!ありがとうございました。