Last Updated 2003/12/11
Programming Tips Visual C++ MFC CEdit  索 引 
エディットコントロールへのファイルドロップ
2003/12/11

エディットコントロールへファイルのドロップするには WM_DROPFILES ハンドラを作成する.

エディットコントロールにドロップしたファイル名を表示するには以下の様にする.
(CEdit クラスを CDropEdit クラスとして派生させる)


BEGIN_MESSAGE_MAP(CDropEdit, CEdit)
    //{{AFX_MSG_MAP(CDropEdit)
    ON_WM_DROPFILES()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDropEdit メッセージ ハンドラ

void CDropEdit::OnDropFiles(HDROP hDropInfo) 
{
    // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください

    UINT uiFiles;       // ドロップファイル数
    UINT uiSize;        // ファイル名サイズ
    LPTSTR pStr;        // 文字列

    // ドロップされたファイル数を取得
    uiFiles = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0);

    if( uiFiles != 1 ) return;

    uiSize = DragQueryFile(hDropInfo, 0, NULL, 0);
    pStr = new char[uiSize + 1];
    DragQueryFile(hDropInfo, 0, pStr, uiSize + 1);

    SetWindowText(pStr);

    delete[] pStr;

    CEdit::OnDropFiles(hDropInfo);
}


参照
ファイルのドロップ
ファイル以外のドロップ
リッチエディットへのドラッグ&ドロップ
前後のTips
エディットコントロールへのファイルドロップ

DSS ProgrammingTipsCGI Ver2.01