Announcement

Collapse
No announcement yet.

Dropping file/directory onto listview

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Semen Matusovski
    replied
    Originally posted by DorianDarby:
    The problem is that the listview cannot be the same size as the form
    Sounds very strange. I told about modeless dialog, not abot whole form.
    I added some buttons/textboxes to make my idea more clear.
    Drag&Drop zone is ListView' area only.
    Code:
       #Compile Exe
       #Register None
       #Dim All
       #Include "WIN32API.INC"
       #Include "COMMCTRL.INC"
       
       Global hDlgMain As Long, hDlg As Long
       CallBack Function DlgProc
          Static iFile As Long, nFile As Long, TmpAsciiz As Asciiz * %MAX_PATH
          Select Case CbMsg
             Case %WM_DROPFILES
                nFile = DragQueryFile (CbWparam, -1, ByVal 0, 0)
                For iFile = 0 To nFile - 1
                   DragQueryFile CbWparam, iFile, TmpAsciiz, SizeOf(TmpAsciiz)
                   MsgBox TmpAsciiz
                Next
                DragFinish CbWparam
             Case %WM_INITDIALOG: DragAcceptFiles CbHndl, %True
             Case %WM_DESTROY: DragAcceptFiles CbHndl, %False
          End Select
       End Function
       Function PbMain()As Long
          InitCommonControls
          Dialog New 0,"Drag and drop", , , 300, 250,%WS_SYSMENU Or %WS_CAPTION Or %WS_THICKFRAME Or %DS_CENTER, To hDlgMain
          Control Add TextBox, hDlgMain, 102, "", 10, 5, 280, 15, , %WS_EX_CLIENTEDGE
          Control Add TextBox, hDlgMain, 103, "", 10, 30, 280, 15, , %WS_EX_CLIENTEDGE
          Control Add Button, hDlgMain, 104, "Button1", 10, 215, 120, 15
          Control Add Button, hDlgMain, 105, "Button2", 170, 215, 120, 15
          Dialog New hDlgMain, "", 10, 75, 280, 120, %WS_CHILD To hDlg
          Control Add "SysListView32", hDlg, 101, "", 0, 0, 280, 120, %WS_CHILD Or %WS_VISIBLE, %WS_EX_CLIENTEDGE
          Dialog Show Modeless hDlg Call DlgProc
          Dialog Show Modal hDlgMain
       End Function
    ------------------

    Leave a comment:


  • DorianDarby
    Guest replied
    I tried that out, and it works OK. The problem is that the listview cannot be the same size as the form, and unfortunately I can only get the form to respond to drop events. I used Spy++ (with Visual Studio) to see what messages were being sent to my listview. %WM_DROPFILES was among them, but I don't know how to detect this message.

    In my message handler, I've got the usual code:

    Select case wMsg
    ...
    ...
    Case %WM_DROPFILES


    This only detects the %WM_DROPFILES sent to the form, and not directly sent to the listview.

    Does anyone know how I could get this working?

    Cheers!

    Dorian.


    ------------------

    Leave a comment:


  • Semen Matusovski
    replied
    Dorian --
    not sure, that this is optimal solution, but enough simple:
    to place listview on modeless dialog with the same size.
    Code:
       #Compile Exe
       #Register None
       #Dim All
       #Include "WIN32API.INC"
       #Include "COMMCTRL.INC"
    
       CallBack Function DlgProc
          Static iFile As Long, nFile As Long, TmpAsciiz As Asciiz * %MAX_PATH
          Select Case CbMsg
             Case %WM_DROPFILES
                nFile = DragQueryFile (CbWparam, -1, ByVal 0, 0)
                For iFile = 0 To nFile - 1
                   DragQueryFile CbWparam, iFile, TmpAsciiz, SizeOf(TmpAsciiz)
                   MsgBox TmpAsciiz
                Next
                DragFinish CbWparam
             Case %WM_INITDIALOG: DragAcceptFiles CbHndl, %True
             Case %WM_DESTROY: DragAcceptFiles CbHndl, %False
          End Select
       End Function
    
       Function PbMain()As Long
          InitCommonControls
          Dim hDlgMain As Long, hDlg As Long
          Dialog New 0,"Drag and drop",,,300, 250,%WS_SYSMENU Or %WS_THICKFRAME Or %DS_CENTER, To hDlgMain
          Dialog New hDlgMain, "", 10, 25, 280,170, %WS_CHILD To hDlg
          Control Add "SysListView32", hDlg, 101, "", 0, 0, 280, 170, %WS_CHILD Or %WS_VISIBLE, %WS_EX_CLIENTEDGE
          Dialog Show Modeless hDlg Call DlgProc
          Dialog Show Modal hDlgMain
       End Function
    ------------------

    Leave a comment:


  • DorianDarby
    Guest started a topic Dropping file/directory onto listview

    Dropping file/directory onto listview

    I had an app which had a listbox on it, with which the user could drag files or directories on it. The files were added OK and everything was alright. I decided to use a listview, but I haven't worked out which messages I need to capture when a user does the same drag drop operation. I don't need to worry about the user dragging off the listview (i.e. I don't want them to!)

    Has anyone got any ideas?

    TIA.

    Dorian
Working...
X