2012-05-29 21 views
1

我已经将Windows Media控件添加到了我的表单,并且除了处于全屏状态时以外,能够完美地使用它。似乎我无法通过我的应用程序中的关键事件来操纵控件的任何方面。我目前的目标是处理'esc'键以退出全屏。我可以从那里做更多。WMP:在全屏状态下无法控制/处理事件

如果您有任何想法,请让我知道!

谢谢,凯文

回答

2

我一旦发现这段代码的地方和工作得很好,但不记得在哪里,我从得到它。

public partial class WMForm : Form,IMessageFilter 

{ 

    public WMForm() 

    { 

     InitializeComponent(); 

    } 



    private void WMForm_Load(object sender, EventArgs e) 

    { 

     this.MyWindowsMediaPlayer.URL = @"YourFilePath/Url"; 

     Application.AddMessageFilter(this); 

    } 



    private void WMForm_FormClosing(object sender, FormClosingEventArgs e) 

    { 

     Application.RemoveMessageFilter(this); 

    } 



    #region IMessageFilter 

    private const UInt32 WM_KEYDOWN = 0x0100; 

    public bool PreFilterMessage(ref Message m) 

    { 

     if (m.Msg == WM_KEYDOWN) 

     { 

      Keys keyCode = (Keys)(int)m.WParam & Keys.KeyCode; 

      if (keyCode == Keys.Escape) 

      { 

       this.MyWindowsMediaPlayer.fullScreen = false; 

      } 

      return true; 

     } 

     return false; 

    } 

    #endregion 

} 
+0

谢谢,我会试试这个并且回复你。如果它有效的话,50个赏金将是你的! – kevp

+0

那么我今天就试着去尝试。多亏了吨,为我的WMP项目实施密封的好方法。 谢谢! – kevp

相关问题