用对话框或SDI做了这样一个程序
使用控件 Window Media Player 9.0或10以对话框为例
1,添加控件,并声明变量 CWMPPlayer4  m_WMPlayer;
2,在Dlg的OnSize中这样处理
if (m_WMPlayer.GetSafeHwnd())
{
   m_WMPlayer.MoveWindow(0,0,cx,cy);
}可是为什么拖动对话框时,Window Media Player控件总是闪烁,还有当用SetUrl加载媒体时也是闪烁。请问该如何解决啊???????

解决方案 »

  1.   

    响应WM_ERASEBGN消息,直接return TRUE;
      

  2.   

    if (m_WMPlayer.GetSafeHwnd())
    {
       m_WMPlayer.MoveWindow(0,0,cx,cy);
    }
    方法不当,可以判断一下是否需要MoveWindow。
    (比如拖动时,就不需要执行这句话)
      

  3.   


    楼上说 响应WM_ERASEBGN消息 有误
    其实是相应 WM_ERASEBKGND 并return TRUE;
    这样拖拉和播放时的闪烁都不见了。只是我对这个消息不太了解
    他是画背景的,每次发生WM_PAINT,都要发生他。那位高人能讲解下
      

  4.   

    return TRUE;是对系统说,背景色我来处理了,你别管了,所以就不闪了