收录日期:2018/07/18 14:32:31 时间:2016/05/21 14:12:38 标签:基础类
我现在在做一个播放器,用了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的
up
up