ドラッグアンドドロップのON/OFF          <TOP>


DragAcceptFiles ウィンドウがファイルのドラッグアンドドロップを受け入れるかどうかを設定

 

'================================================================
'= ドラッグアンドドロップのON/OFF
'=    (DragAcceptFiles.bas)
'================================================================
#include "Windows.bi"

' ウィンドウがファイルのドラッグアンドドロップを受け入れるかどうかを設定
Declare Sub Api_DragAcceptFiles Lib "shell32" Alias "DragAcceptFiles" (ByVal hWnd&, ByVal fAccept&)

Var Shared Text1 As Object
Var Shared List1 As Object
Var Shared Button1 As Object
Var Shared Button2 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
List1.Attach GetDlgItem("List1") : List1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Api_DragAcceptFiles List1.GethWnd, True
End Sub

'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Api_DragAcceptFiles List1.GethWnd, False

    Text1.SetWindowText ""
    List1.ResetContent
End Sub

'================================================================
'= シェルドロップされたファイル名を取得
'================================================================
Declare Sub List1_DropFiles edecl (ByVal DF As Long)
Sub List1_DropFiles(ByVal DF As Long)
    Var FileName As String
    Var CN As Long
    Var i As Long

    List1.ResetContent

    CN = GetDropFileCount(DF)
    For i = 0 To CN - 1
        FileName = GetDropFileName(DF, i)
        List1.AddString FileName
    Next

    Text1.SetWindowText Str$(CN) & "個のファイルをDrag&&Dropしました!"
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End