1

每当我的 AxWindowsMediaPlayer1 全屏并单击它时,它基本上要么停止我的播放器,要么从暂停的那一刻重新开始播放。有没有办法永远禁用触摸/点击我的播放器?

我可能应该提到我已经添加了这个:

AxWindowsMediaPlayer1.enableContextMenu = False
AxWindowsMediaPlayer1.Ctlenabled = False

第一个禁用了右键单击媒体播放器时出现的选项菜单,第二个禁用了主要功能,例如双击它以全屏显示,但这两个都不能解决我的小问题。


编辑:我仍然没有找到解决这个 pff 的方法。如果有人可以帮助我,请随时发布并发布。有没有可能永远禁用播放暂停按钮功能的方法?

4

1 回答 1

0
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 代码是做什么用的,但它确实有作用,我可以保证。可能只是触发事件以移动光标,因为消息正在发送到控件。

于 2014-05-29T21:36:53.087 回答