高高高高手请进:用API函数mciSendString在自己的窗体Form1中播放视频图像,如何在图像上按右键弹出菜单?

解决方案 »

  1.   

    哎!绕来绕去,又是你的贴子,一个问题为什么发这么多贴?
    看来你很急,又不太会查资料。
    这样吧,先看我的Blog中这篇文章,
    http://blog.csdn.net/homezj/archive/2005/04/14/347936.aspx
    调用里面的ShowVideo可返回视频窗的hWnd,用它你就可以做SubClass了,我过会写段SubClass它的代码给你。
      

  2.   

    哎,SubClass是种处理机制,几句话真说不清,用下面代码试试,按需要改改。应该可以了。相关API声明,你自己加上。
    注意:看懂了再试,并要先存盘,这东西调试时会崩溃的。'以下代码在窗体Form1中
    '窗体中加个Timer取名为PMenu,Interval=20,Enabled = FalsePrivate Sub PMenu_Timer()
        PMenu.Enabled = False
        PopupMenu MyMenu
    End Sub'播放视频过程中放入这两句
    VediohWnd=ShowVideo("你的视频文件名", Me.hWnd, 0, 0, 100, 100)'这是我Blog中那个能返回hWnd的过程
    OldProc=SetWindowLong(VediohWnd, GWL_WNDPROC, AddressOf WndProc)'关闭视频前
    SetWindowLong VediohWnd, GWL_WNDPROC, OldProc '以下代码放在标准模块中
    Public OldProc As Long,VediohWnd As Long
    Public Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wp As Long, ByVal lp As Long) As Long
        On Error Resume Next
        Select Case Msg
            Case WM_RBUTTONUP
                Form1.PMenu.Enabled = True
                WndProc = 1
                Exit Function
        End Select
        WndProc = CallWindowProc(OldProc, hWnd, Msg, wp, lp)
    End Function