rai002 @ ウィキ
WINAPI:ドラッグアンドドロップ
最終更新:
rai002
-
view
WINAPI:ドラッグアンドドロップ
ヘッダー
shellapi.h
windows.hをインクルード時は多分要らない
windows.hをインクルード時は多分要らない
メッセージ
WM_DROPFILES
初期
VOID DragAcceptFiles(
HWND hWnd, //ウィンドウのハンドル
BOOL fAccept //受け入れの有無
);
hWnd ドラッグアンドドロップを受け入れるかどうか設定するべきウィンドウのハンドルを指定します。 fAccept hWnd パラメータで指定されたウィンドウが、ドロップされたファイルを受け入れるかどうかを 指定します。TRUE を指定すると、ファイルを受け入れます。FALSE を指定すると、ファイルを受け入れません。
基本的に利用
UINT DragQueryFile(
HDROP hDrop, //ファイル名構造体のハンドル
UINT iFile, //ファイルのインデックス番号
LPTSTR lpszFile, //ファイル名を格納するバッファ
UINT cch //バッファのサイズ
);
hDrop ドロップされた複数のファイルの名前を保持している、1 個の内部構造体のハンドルを指定します。 iFile 問い合わせ対象のファイルのインデックス番号を指定します。 0xFFFFFFFF(言い換えると -1)を指定すると、DragQueryFile は、ドロップされたファイルの総数を返します。 0~ドロップされたファイルの総数未満のいずれかの値を指定すると、 DragQueryFile は、lpszFile パラメータが指すバッファに、その値に対応するファイルの名前を格納します。 lpszFile 1 個のバッファへのポインタを指定します。関数から制御が返ると、このバッファに、 ドロップされた特定のファイルの名前が格納されます。NULL を指定すると、 DragQueryFile は必要なバッファのサイズを文字単位で返します。 cch lpszFile が指すバッファのサイズを文字単位で指定します。 戻り値 関数がバッファにファイル名を格納すると、格納した文字数が返ります。 終端の NULL 文字は、文字数に含まれません。 iFile パラメータで 0xFFFFFFFF(-1)を指定した場合、 ドラッグアンドドロップされたファイルの総数が返ります。 iFile パラメータで、0~ドロップされたファイルの総数未満の値を指定し、 さらに lpszFile パラメータで NULL を指定した場合、ファイル名を格納するために必要な バッファのサイズが文字単位で返ります。終端の NULL 文字は、文字数に含まれません。
ドロップファイルと位置
BOOL DragQueryPoint(
HDROP hDrop, //ファイル名構造体のハンドル
LPPOINT lppt //マウスカーソルの位置
);
hDrop ドロップされたファイルを表す内部データ構造体を操作するためのハンドルを指定します。 この値は WM_DROPFILES メッセージの wParam パラメータにあたります。 ppt ドロップされたときのマウスポインタの位置を格納するための POINT 構造体のアドレスを指定します。
開放の宣言
VOID DragFinish(
HDROP hDrop //ファイル名構造体のハンドル
);
hDrop ドロップされたファイルについて記述している内部構造体のハンドルを指定します。 このハンドルは、WM_DROPFILESメッセージの wParam パラメータから取得できます
参考URL:
独学プログラミング言語のページ > Win32API(C言語,C++) > DragAcceptFiles
http://www.monmon-dance.com/win32api/dragacceptfiles.html
MSDN
独学プログラミング言語のページ > Win32API(C言語,C++) > DragAcceptFiles
http://www.monmon-dance.com/win32api/dragacceptfiles.html
MSDN