我现在在做一个播放器,用了Windows Media Player ActiveX object
现在有两个问题:
1. Media Player在播放时,如果在播放窗上双击,它就自动变成全屏了。
而我要的效果双击不做任何事。我试着拦截它的消息并自己处理,可以成功拦截到,但是做完自己的处理后,它还是变成全屏了。
2. Media Player在全屏时,当焦点离开时(譬如Alt+Tab转到别的程序),它就自动变回普通大小了,有什么办法可以让它不做任何事?菜鸟啼问,请高手指点一下。
万分感谢!我用到的拦截的那部分代码如下:void TForm1::ToggleSubClass(bool on)
{
if(on) //子类化
{
OldWndProc = WindowsMediaPlayer1->WindowProc; //保存默认处理
WindowsMediaPlayer1->WindowProc = SubClassWndProc; //设置自己的子类化处理
}
else //复原­
WindowsMediaPlayer1->WindowProc = OldWndProc;
}
//------------------------------------------------------------------------
void __fastcall TForm1::SubClassWndProc(TMessage& message)
{
if(message.Msg == WM_LBUTTONDBLCLK)
{
//ShowMessage("aaaa");
return;
}
else
{
OldWndProc(message);
}
}这代码是C++Builder的
现在有两个问题:
1. Media Player在播放时,如果在播放窗上双击,它就自动变成全屏了。
而我要的效果双击不做任何事。我试着拦截它的消息并自己处理,可以成功拦截到,但是做完自己的处理后,它还是变成全屏了。
2. Media Player在全屏时,当焦点离开时(譬如Alt+Tab转到别的程序),它就自动变回普通大小了,有什么办法可以让它不做任何事?菜鸟啼问,请高手指点一下。
万分感谢!我用到的拦截的那部分代码如下:void TForm1::ToggleSubClass(bool on)
{
if(on) //子类化
{
OldWndProc = WindowsMediaPlayer1->WindowProc; //保存默认处理
WindowsMediaPlayer1->WindowProc = SubClassWndProc; //设置自己的子类化处理
}
else //复原­
WindowsMediaPlayer1->WindowProc = OldWndProc;
}
//------------------------------------------------------------------------
void __fastcall TForm1::SubClassWndProc(TMessage& message)
{
if(message.Msg == WM_LBUTTONDBLCLK)
{
//ShowMessage("aaaa");
return;
}
else
{
OldWndProc(message);
}
}这代码是C++Builder的
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货