C# Axwindows media player在全屏模式下检测按键
我的windows窗体应用程序中有ax windows media player。当用户双击它时,它会变成全屏C# Axwindows media player在全屏模式下检测按键,c#,winforms,axwindowsmediaplayer,C#,Winforms,Axwindowsmediaplayer,我的windows窗体应用程序中有ax windows media player。当用户双击它时,它会变成全屏 WMPLarge.KeyDownEvent += new AxWMPLib._WMPOCXEvents_KeyDownEventHandler(Form1_KeyDown); private void Form1_KeyDown(object sender, AxWMPLib._WMPOCXEvents_KeyDownEvent e) { if (e.nK
WMPLarge.KeyDownEvent += new AxWMPLib._WMPOCXEvents_KeyDownEventHandler(Form1_KeyDown);
private void Form1_KeyDown(object sender, AxWMPLib._WMPOCXEvents_KeyDownEvent e)
{
if (e.nKeyCode == 27)
{
MessageBox.Show("");
WMPLarge.fullScreen = false;
WMPSmall.fullScreen = false;
}
}
问题:我希望用户在按下“退出键”时能够返回正常屏幕。
我在ax媒体播放器上设置了一个按键事件。此按键按下事件在正常模式下工作,但在媒体播放器全屏显示时失败
WMPLarge.KeyDownEvent += new AxWMPLib._WMPOCXEvents_KeyDownEventHandler(Form1_KeyDown);
private void Form1_KeyDown(object sender, AxWMPLib._WMPOCXEvents_KeyDownEvent e)
{
if (e.nKeyCode == 27)
{
MessageBox.Show("");
WMPLarge.fullScreen = false;
WMPSmall.fullScreen = false;
}
}
如何实现这一点?这里是我使用的一个代码片段,希望对您有所帮助
public partial class Form16 : Form,IMessageFilter
{
public Form16()
{
InitializeComponent();
}
private void Form16_Load(object sender, EventArgs e)
{
this.axWindowsMediaPlayer1.URL = @"D:\MyVideo\myfile.wmv";
Application.AddMessageFilter(this);
}
private void Form16_FormClosing(object sender, FormClosingEventArgs e)
{
Application.RemoveMessageFilter(this);
}
#region IMessageFilter Members
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.axWindowsMediaPlayer1.fullScreen = false;
}
return true;
}
return false;
}
#endregion
}
凯·普拉什纳·阿赫·瓦赫