我在视图的OnCreate 函数中执行如下代码,希望进行视频窗口的创建和播放,结果只出现声音,没有图像,不知何故:
CRect rect_t;
this->GetClientRect(&rect_t); m_player.Create("movie", WS_CHILD | WS_VISIBLE, rect_t, this, 1111);
m_player.SetUrl("E:/9-1-1.asf");
m_player.GetControls().play();
m_player.ShowWindow(SW_SHOW);
是wmp控件的设置问题,还是代码不应该放在OnCreate 函数中,请教各位大虾,谢谢!

解决方案 »

  1.   

    在Oncreate这时候窗口大小为0,所以你创建的mediacontrol大小也为0.。。:-)
    在添加个Onsize()做处理吧。View::OnSize(UINT nType, int cx, int cy) 
    {
    CView::OnSize(nType, cx, cy);
    CRect rect_t;
    this->GetClientRect(&rect_t);

    m_player.MoveWindow(&rect_t);
    // TODO: Add your message handler code here

    }
      

  2.   

    非常感谢"dododunk",再问一个问题,我要同时播放多个视频文件,需不需要为每个打开的窗口单独设置一个线程?
      

  3.   

    dododunk:    按照你的方法编写后,确实可以载入视频,不过出现了点小问题,需要帮忙解决一下:每次打开一个视频窗口后,窗口客户区显示的是背景色(白色),而且不会自动播放,得移动窗口两次(移动一次还不行)才能正常播放,请问这是什么缘故,谢谢!