WMP: невозможно контролировать / обрабатывать события в полноэкранном режиме

Я добавил в свою форму элемент управления Windows Media и могу отлично использовать его, за исключением случаев, когда он находится в полноэкранном состоянии. Кажется, что я не могу управлять какими-либо аспектами элемента управления с помощью ключевых событий в моем приложении. Моя текущая цель - нажать клавишу «esc», чтобы выйти из полноэкранного режима. С этого момента я могу делать больше.

Если у вас есть идеи, дайте мне знать!

Спасибо, Кевин


person kevp    schedule 29.05.2012    source источник


Ответы (1)


Однажды я где-то нашел этот код и работал очень хорошо, но не помню, откуда я его взял.

    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

}
person Community    schedule 02.06.2012
comment
Спасибо, я попробую и вернусь к вам. 50 наград будут твоими, если это сработает! - person kevp; 02.06.2012
comment
Ну, я сегодня решил попробовать. Большое спасибо, какой отличный способ реализовать keydown для моего проекта WMP. Спасибо! - person kevp; 05.06.2012