最近经常见到有人问视频窗口不能正常显示的问题,都说不知道原因即解决办法。
其实这是由于视频窗口没有消息循环不能实时刷新造成的,出现这样的情况基本都是在调用了IVideoWindow接口的put_Owner()方法将视频窗口设置为了其他窗口的子窗口后出现的。
一般解决办法是将视频窗口设置为主窗体的子窗体,借助主窗体的WM_PAINT消息在OnPaint()里面实现刷新。再有就是在结束时的善后工作一定要做好!!一般是:
pivw->put_Visible(OAFALSE);
pivw->put_Owner(NULL);
pivw是IVideoWindow接口指针
附带说一下如果是要接收视频窗口的消息,比如全屏下的ESC,就用
pivw->put_MessageDrain((OAHWND)m_mainHwnd);//m_mainHwnd是接收消息的窗体的句柄
本文解答了视频窗口无法正常显示的问题,通常是由于消息循环缺失导致。解决方案包括将视频窗口设置为主窗体的子窗体,并利用WM_PAINT消息触发刷新。此外还介绍了如何接收视频窗口的消息。
677

被折叠的 条评论
为什么被折叠?



