AddHandler mpOCX.MouseMoveEvent, AddressOf doMouseMove
Private Sub doMouseMove(ByVal sender As Object, ByVal e As AxWMPLib._WMPOCXEvents_MouseMoveEvent)
OnMouseMove(New MouseEventArgs(MouseButtons.None, 0, e.fX, e.fY, 0))
End Sub
' ... not sure if these will have some effect
mpOCX.uiMode = "none"
mpOCX.Ctrlenabled = False
mpOCX.enableContextMenu = False
mpOCX.stretchToFit = True ' bonus
' ... to change the mouse cursor, override OnMouseEnter in your mpOCX object, which inherits from AxWindowsMediaPlayer:
Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
' ... again, this goes in the
Cursor = Cursors.Arrow
MyBase.OnMouseEnter(e)
End Sub
' ... also, to short-circuit keyboard messages, you will have to Override PreProcessMessage in the mpOCX class, so might as well make one.
' ... these fire for keydown for WMP shortcut keys, keyup for all regular keys, but they don't fire keyup for WMP shortcut keys. this WILL disable all navigation via keyboard in WMP, so you can't press ctrl+O for example.
Public Overrides Function PreProcessMessage(ByRef m As Message) As Boolean
Return True
'Return MyBase.PreProcessMessage(m) ' do not uncomment
End Function
' ... other methods you could Override instead are ProcessCmdKey, ProcessDialogChar, ProcessDialogKey, ProcessKeyMessage, ProcessKeyEventArgs, ProcessKeyMessage, ProcessKeyPreview, ProcessMnemonic - but it's like playing whack-a-mole...
哦,对不起,我误读了你的问题,大声笑;p 事实上,我什至不记得这是否会禁用鼠标点击.. 看起来确实如此,它在我的 WMP 代码中,但我必须修复一些行并重建 ;p 所以我目前无法测试,但我希望它有所帮助。
实际上,有一个MouseDownEvent(ByVal sender As Object, ByVal e As AxWMPLib._WMPOCXEvents_MouseDownEvent)
应该允许您以相同的方式处理它。我不确定我的 mousemove 代码是做什么用的,但它确实有作用,我可以保证。可能只是触发事件以移动光标,因为消息正在发送到控件。