哎,SubClass是种处理机制,几句话真说不清,用下面代码试试,按需要改改。应该可以了。相关API声明,你自己加上。
注意:看懂了再试,并要先存盘,这东西调试时会崩溃的。
'以下代码在窗体Form1中
'窗体中加个Timer取名为PMenu,Interval=20,Enabled = False
Private 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
注意:看懂了再试,并要先存盘,这东西调试时会崩溃的。
'以下代码在窗体Form1中
'窗体中加个Timer取名为PMenu,Interval=20,Enabled = False
Private 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