WindowsフォームへのファイルのDrag&Dropを許可する方法。
まずは、いつものようにイベントハンドラを作成。
private: System::Void Form_DragEnter( System::Object^ sender, DragEventArgs^ e){
// ドロップされようとしているデータが、ファイルの時だけ受け付ける
if( e->Data->GetDataPresent(::DataFormats::FileDrop) )
{
e->Effect = ::DragDropEffects::All;
}
else
{
e->Effect = ::DragDropEffects::None;
}
}
private: System::Void Form_DragDrop( System::Object^ sender, DragEventArgs^ e){
// ドロップされたファイルをファイルのパス文字列に変換
array^ strDropFile = (array<String^>^)e->Data->GetData( ::DataFormats::FileDrop, false );
// 全て表示
for each( String^ str in strDropFile )
{
MessageBox::Show( str, "Drag & Drop", MessageBoxButtons::OK, MessageBoxIcon::Information );
}
}
フォームプロパティのDrag&Dropを許可にして、イベントを登録する
this->AllowDrop = true;
this->DragEnter += gcnew DragEventHandler( this, &Form_FilerMain::Form_DragEnter );
this->DragDrop += gcnew DragEventHandler( this, &Form_FilerMain::Form_DragDrop );
なんだかWin32 SDKでやるより難しい気がするのは気のせいだろうか・・・
投稿者 NMVL : 2006年4月12日 15:05