一個不得不記的問題

        被這個問題困擾了兩天了,好不爽,於是記下來,希望如果有人遇到同樣問題,不要再受吃苦,順便鄙視微軟一下。
       問題是這樣的,由於種種迫不得已的原因,用vs2003+direcshow做了個支持視頻點播,在線視頻播放,攝像頭視頻捕捉的小程序,設置void Cvp::DisplayVideoWin()
{
 CRect rc;
 if(m_pWin)
 {
  m_pWin->put_Owner((OAHWND)m_hWnd);
  m_pWin->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);
  ::GetClientRect(m_hWnd,&rc);
  m_pWin->SetWindowPosition(rc.left, rc.top, rc.Width(), rc.Height());
  m_pWin->put_Visible(OATRUE);
 }
}

在播放本地視頻時能顯示,但播放點播文件時卻不能顯示,百思不得其解,於是百度一下,找到了 http://topic.csdn.net/t/20050418/10/3944903.html (這裏順便糾正下這位大哥的一點看法,經過我的試驗,拖動窗口是不會發出WM_PAINR消息的)啓發之下,便在play按鈕事件末尾加了:
Sleep(1500);
CRect rc;
::GetWindowRect(m_hWnd,&rc);
MoveWindow(rc.left,rc.top,rc.Width(),rc.Height());
        發現播放mpeg(是mpeg1格式的)文件時,有了短暫的顯示,喜。但後來播放avi格式的時候,發現不加這一句,便可顯示出來,原來問題根本不在程序本身,一切只是mpeg格式文件給我們造成的假象。也就是說我們本來是沒錯的,錯的是微軟!這是他們的一個bug而已。所謂的Sleep(30),或Sleep(1500),只不過是給咱們的反映時間而已,
就像開始沒有加上面這四句,窗口只是閃一下。

         這個程序結束後,我將徹底轉投linux門下,與emacs爲伴了。一定要好好學習,將來用自己寫的包,靠別人的包爲生,真是死都不知道怎麼死的!

        被這個問題困擾了兩天了,好不爽,於是記下來,希望如果有人遇到同樣問題,不要再受吃苦,順便鄙視微軟一下。
       問題是這樣的,由於種種迫不得已的原因,用vs2003+direcshow做了個支持視頻點播,在線視頻播放,攝像頭視頻捕捉的小程序,設置void Cvp::DisplayVideoWin()
{
 CRect rc;
 if(m_pWin)
 {
  m_pWin->put_Owner((OAHWND)m_hWnd);
  m_pWin->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);
  ::GetClientRect(m_hWnd,&rc);
  m_pWin->SetWindowPosition(rc.left, rc.top, rc.Width(), rc.Height());
  m_pWin->put_Visible(OATRUE);
 }
}
播放本地文件時可以顯示窗口,但播放點播文件時卻不能。百思不得其解,於是百度了一下,找到
http://topic.csdn.net/t/20050418/10/3944903.html (這裏順便糾正下這位大哥的一點看法,經過本人試驗,拖動窗口是不會引發WM_PAINT消息的),啓發之下,便在play按鈕事件末尾加了:
Sleep(1500);
CRect rc;
::GetWindowRect(m_hWnd,&rc);
MoveWindow(rc.left,rc.top,rc.Width(),rc.Height());
        發現播放mpeg(是mpeg1格式的)文件時,有了短暫的顯示,喜。但後來播放avi格式的時候,發現不加這一句,便可顯示出來,原來問題根本不在程序本身,一切只是mpeg格式文件給我們造成的假象。也就是說我們本來是沒錯的,錯的是微軟!這是他們的一個bug而已。所謂的Sleep(30),或Sleep(1500),只不過是給咱們的反映時間而已,
就像開始沒有加上面這四句,窗口只是閃一下。

        這個程序結束後,我將徹底轉投linux門下,與emacs爲伴了。一定要好好學習,將來用自己寫的包,靠別人的包爲生,真是死都不知道怎麼死的!

發佈了32 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章