ts,ps,mpeg2 decoder and analysis

mepg 2, iptv, stream parse,mov,mxf,gxf,ac3,aac

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  21 随笔 :: 0 文章 :: 54 评论 :: 0 Trackbacks

Videowindow: directshow播放画面刷新问题,

开始播放后画面会出来,一切正常。现在的问题是

当别的未最大化的窗口半遮或全遮住视频窗口,画面都能正常刷新, 只有拖动一下dialog画面才会出来

但是:当此dialog最小化,再恢复时, 能正常刷新

我出现的问题,和下列问题都不相同,导致处理方法也不相同.

大多数刷新问题,都可以从下面这个帖子,去解决.

http://blog.csdn.net/arthurlee/archive/2008/10/09/3043977.aspx

http://www.qqgb.com/Program/VC/VCJQ/Program_176331.html

 

pVidWin-> put_Owner((OAHWND)GetDlgItem(IDC_VW_FRAME)-> GetSafeHwnd());  
2
GetDlgItem(IDC_VW_FRAME)-> ModifyStyle(0,       WS_CLIPCHILDREN);  
3
OnPaint       不用动  
4
OnEraseBkgnd       加如下代码  
           
            RECT       rect;  
            GetDlgItem(IDC_VW_FRAME)-> GetWindowRect(&rect);  
            ScreenToClient(&rect);  
            pDC->   ExcludeClipRect(&rect);  
            return       CDialog::OnEraseBkgnd(pDC);  

 

可是我的窗口不要上面这四条,只要把窗口属性设置成

DWORD m_dwExStyle=WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR| WS_EX_WINDOWEDGE;

     m_pPlayWnd->CreateEx(m_dwExStyle,

         oClassName,_T("Play"),

         WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN| WS_CLIPSIBLINGS|WS_POPUP,

我的程序是这样的:一个dialog里面 new CPlaybackwnd

class CPlaybackwnd : public CWnd

CPlaybackwnd这个里面, 增加,m_pVW->put_WindowStyle ,,

m_pVW->put_Owner((OAHWND)(GetSafeHwnd()));

但是,当把playbackwnd的属性,设置成dialogWS_POPUP, WS_CHILD,窗口移动时位置就不对了,

我在dialog里面增加了,

void CDialog::OnWindowPosChanged(WINDOWPOS* lpwndpos)

{

     __super::OnWindowPosChanged(lpwndpos);

 

     if (m_pPlayWnd)

     {

         int x = m_nWnd_x + lpwndpos->x;

         int y = m_nWnd_y + lpwndpos->y;

         int cx = m_nWnd_cx;

         int cy = m_nWnd_cy;

         m_pPlayWnd->MoveWindow(x,y,cx,cy);

     }

}

但是,这个程序在win2000下会出现问题,其它操作系统是好的.

win2000,窗口坐标是乱了, dialogplaybackwnd的相对位置错误了,目前还没有解决.

 

posted on 2010-03-12 09:20 TS,MPEG2,dvbc专家 阅读(2190) 评论(2)  编辑 收藏 引用

评论

# re: Videowindow: directshow 播放画面刷新问题 2012-06-13 18:46 小查
你好,我也遇到了这样的问题,但是还是不对啊,我是用ivideowindow做的,能正常播放视频,但是,如果我在视频上划线了,那么视频居然看不到了,但线能看到,我用的是双缓冲。我qq:692476223,麻烦加我的时候说下在哪看到的哈,谢了
  回复  更多评论
  

# re: Videowindow: directshow 播放画面刷新问题 2012-11-30 16:44
实在抱歉,改天,我们聊这个,  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


ts,ps,mpeg2 decoder and analysis,ts分析.