エクスプローラからファイルをドラッグ&ドロップ
【処理手順】
1.ウインドウ初期化時にファイルのドラッグ ドロップを許可
呼び出すメソッド : DragAcceptFiles
2.メッセージハンドラを設定(ClassWizardを使用)
設定するメッセージ : WM_DROPFILES
3.2で作成されたOnDropFiles(HDROP hDropInfo)に必要な処理を記述
【サンプル】
//初期化用メソッド
BOOL CFiledragdropDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// "バージョン情報..." メニュー項目をシステム メニューへ追加します。
// IDM_ABOUTBOX はコマンド メニューの範囲でなければなりません。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// このダイアログ用のアイコンを設定します。フレームワークはアプリケーションのメイン
// ウィンドウがダイアログでない時は自動的に設定しません。
SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定
// TODO: 特別な初期化を行う時はこの場所に追加してください。
//追加コード--------------------------------------↓
//ファイルのドラッグ ドロップを許可
CDialog::DragAcceptFiles(TRUE);
//------------------------------------------------↑
return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
}
//--------------------------------------------------------------------
//ファイルをドラッグ ドロップするためのWindowメッセージハンドラ
//(WM_DROPFILES)が呼び出すメソッド
void CFiledragdropDlg::OnDropFiles(HDROP hDropInfo)
{
char buf[MAX_PATH];
if(DragQueryFile(hDropInfo, 0, buf, sizeof(buf))){
m_ed1.SetWindowText(buf);
}
CDialog::OnDropFiles(hDropInfo);
}