我正是想用程序播放媒体文件!把整个From都占满了,不能用Form_KeyDown,而且这个控件也没有KeyDown事件。
请高手帮忙!

解决方案 »

  1.   

    放一个透明的Picutre1在最上,接受Ole在Picture1中的MouseDown中判断鼠标的位置,再转发给其他控件。
      

  2.   

    用 API :DragAcceptFiles 什么的。
      

  3.   

    To fq1():答应再给你的50分,再等一等好吗?有两位给了我新的思路to  myhfit():
      Picutre可以透明吗?我设定为Picutre1.FillStyle = vbFSTransparent,可是并没有透明,挡在下面的控件还是看不到To pgfan(波罗的海):
      可以讲的具体一些吗?有例程吗?
      

  4.   

    Option Explicit
    '在一个模块中
      Public Const MAX_PATH As Long = 260&
      Public Const WM_DROPFILES As Long = &H233&
      Public procOld As Long
      Public Declare Function CallWindowProc& Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc&, _
                                                        ByVal hWnd&, ByVal Msg&, ByVal wParam&, ByVal lParam&)
      Public Declare Sub DragAcceptFiles Lib "shell32.dll" (ByVal hWnd&, ByVal fAccept&)
      Public Declare Function DragQueryFile& Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop&, ByVal iFile&, _
                                                                                      ByVal lpszFile$, ByVal cch&)
      Public Declare Sub DragFinish Lib "shell32.dll" (ByVal hDrop&)Public Function WindowProc(ByVal hWnd As Long, ByVal iMsg As Long, _
                                                  ByVal wParam As Long, ByVal lParam As Long) As Long
      Select Case iMsg
        Case WM_DROPFILES
          FrmMain.DropFiles wParam
          WindowProc = False
          Exit Function
      End Select
      WindowProc = CallWindowProc(procOld, hWnd, iMsg, wParam, lParam)
    End Function
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    private form_onload()
    DragAcceptFiles Me.hWnd, True
                procOld = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf WindowProc)
    end sub'''''''''''''''''''''''''''''''''''''''Private Sub Form_Unload(Cancel As Integer)
    SetWindowLong Me.hWnd, GWL_WNDPROC, procOld
    End
    End Sub
    但是程序好像无法正常退出,怎么办啊
      

  5.   

    补充:
    Public Sub DropFiles(ByVal hDrop&)
    Dim sFileName$, nCharsCopied&
    sFileName = String$(MAX_PATH, vbNullChar)
    nCharsCopied = DragQueryFile(hDrop, 0&, sFileName, MAX_PATH)
    DragFinish hDrop
    If nCharsCopied Then
        sFileName = Left$(sFileName, InStr(sFileName, vbNullChar) - 1)
        If IsSwf(ByVal sFileName) Then List1.AddItem sFileName
    End If
    End Sub
      

  6.   

    我来晚了,问题已解决了,比我的方法好多了我有个问题不能解决,
    当鼠标拖动网页上的URL到窗体上时也能接受地址,不过当拖动的是本地文件时就分不清本地文件路径和网络URL,而报错