• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 961
  • Last Modified:

Drag and drop into forms

Programs like ms word allow u to drag and drop files into the app window then the app wud open the file u dragged into the app. How do u do this using VB6
0
schoi_ukuk
Asked:
schoi_ukuk
  • 2
1 Solution
 
inthedarkCommented:
The drop files object is not very documented. Also there are some bugs with using it on Windows 95.  Which O/S will you be using?
0
 
schoi_ukukAuthor Commented:
windows xp pro
0
 
schoi_ukukAuthor Commented:
GRRR I wish they would document things properly make our job much easier
0
 
mladenoviczCommented:
I found this code on http://www.vb-world.net a long time ago

into module

Option Explicit

' These are the types that need to be declared for the program to work
Type POINTAPI
  x As Long
  y As Long
End Type
Type MSG
  hwnd As Long
  message As Long
  wParam As Long
  lParam As Long
  time As Long
  pt As POINTAPI
End Type
' These are the Windows API's. These are references to dll's
Declare Sub DragAcceptFiles Lib "shell32.dll" (ByVal hwnd As Long, ByVal fAccept As Long)
Declare Sub DragFinish Lib "shell32.dll" (ByVal hDrop As Long)
Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long
Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long
' These are the Constants, which are made public for the whole application
' to use
Public Const PM_NOREMOVE = &H0
Public Const PM_NOYIELD = &H2
Public Const PM_REMOVE = &H1
Public Const WM_DROPFILES = &H233

INTO FORM (NEED ONE COMMAND BUTTON AND ONE LIST BOX CONTROL)
Option Explicit

Private Sub cmdaccept_Click()
' You can turn the form's / controls  ability
' to accept the files by passing the hWnd as
' the first parameter and Ture/False as the
' Second
If cmdaccept.Caption = "&Accept Files" Then
  ' allow the application to accept files
  DragAcceptFiles frmmain.hwnd, True
  cmdaccept.Caption = "&Do Not Accept"
Else
  DragAcceptFiles frmmain.hwnd, False
  cmdaccept.Caption = "&Accept Files"
End If
End Sub


Private Sub Form_Load()
Visible = True
WatchForFiles
lblemail = email
lblurl = URL
End Sub

Public Sub WatchForFiles()
' This subrountine watchs for all of your WM_DROPFILES messages
' Dim Variables
Dim FileDropMessage As MSG      ' Msg Type
Dim fileDropped     As Boolean  ' True if Files where dropped
Dim hDrop           As Long     ' Pointer to the dropped file structure
Dim filename        As String * 128  ' the dropped filename
Dim numOfDroppedFiles As Long   ' the amount of dropped files
Dim curFile         As Long     ' the current file number
Dim ret As Long
' loop to keep checking for files
' NOTE : Do any code you want to execute before this set
Do
  ' check for Dropped file messages
  fileDropped = PeekMessage(FileDropMessage, 0, WM_DROPFILES, WM_DROPFILES, PM_REMOVE Or PM_NOYIELD)
  If fileDropped Then
    ' Get the pointer to the dropped file structure
    hDrop = FileDropMessage.wParam
    ' Get the toal number of files
    numOfDroppedFiles = DragQueryFile(hDrop, True, filename, 127)
    For curFile = 1 To numOfDroppedFiles
      ' Get the file name
      ret = DragQueryFile(hDrop, curFile - 1, filename, 127)
      ' at this pointer you can do what you want with the filename
      ' the filename will be a full qalified path
      lblnumfiles = LTrim$(Str$(numOfDroppedFiles))
      lstfiles.AddItem filename
    Next curFile
    ' We are now done with the structure, tell windows to discard it
    DragFinish hDrop
  End If
  DoEvents
Loop
End Sub

0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now