[トップ][一覧][最近の更新]

編集履歴:過去のバージョン

2011/10/09 23:46:34 JST時点でのファイルのドラッグ・アンド・ドロップの内容

現在のバージョンとの差分を見る

編集履歴ページに戻る

  HSPウィンドウにドラッグ・アンド・ドロップされたファイルを取得します。
  
  [[$$toc]]
  - →[[HSP3・サンプルスクリプト]]に戻る
  
  ----
  
  HSP3.0で動作確認。
  
  * スクリプト
  
  {{{
  ; <<<< HSP 3.0 サンプル >>>>
  ;
  ;   ウィンドウにドロップされたファイルの名前を取得する
  ;
  
  #uselib "shell32.dll"
  #func DragAcceptFiles "DragAcceptFiles" int,int
  #func DragQueryFile   "DragQueryFileA"  int,int,int,int
  #func DragQueryPoint  "DragQueryPoint"  int,int
  #func DragFinish      "DragFinish"      int
  
  #define WM_DROPFILES	0x0233
  
  ; WM_DROPFILES メッセージハンドラを設定
  oncmd gosub *OnDropFiles, WM_DROPFILES
  
  ; ファイルをドラッグ&ドロップできるように設定
  DragAcceptFiles hwnd, 1
  
  title "ウィンドウにファイルをドロップしてください"
  stop
  
  *OnDropFiles
  ; --- ファイルがドロップされたとき ---
  
  ; ドロップされたファイルの数を取得する
  hdrop = wParam			; ドロップファイル情報のハンドル
  DragQueryFile hdrop, -1, 0, 0
  ndrop = stat			; ファイルの数
  
  ; 画面をクリア
  syscolor 5 : boxf
  syscolor 8 : pos 0,0
  
  ; ファイル名を取得して表示
  sdim filename, 260
  repeat ndrop
  	DragQueryFile hdrop, cnt, varptr(filename), 260
  	mes filename
  loop
  
  ; ドロップファイル情報をクリア (これをしないとメモリリークになる)
  DragFinish hdrop
  return
  }}}
  
  * 解説
  
  http://chokuto.ifdef.jp/urawaza/dragdrop.html