当前位置: 代码迷 >> 多媒体/流媒体开发 >> ,directshow 播放视频的窗口和窗口本身的OnPaint是什么关系
  详细解决方案

,directshow 播放视频的窗口和窗口本身的OnPaint是什么关系

热度:980   发布时间:2013-02-26 00:00:00.0
高手请进,directshow 播放视频的窗口和窗口本身的OnPaint是什么关系
我用directshow播放视频
调用IVideoWindow的put_Owner(),把我的对话框作为播放窗口,传进去。是可以正常播放的

问题1:
  但是我还有另外一个需求,就是要在对话框OnPaint中绘图,当绘图的区域在视频区域内是,windows是怎么处理绘图的。
如何能使OnPaint的绘制优先绘制,绘制在最上面。

问题2:
  我调用IVideoWindow.put_letf(0),put_top(0),put_height(0), put_width(0),隐藏视频时,绘制对话框的背景会闪一下
有什么方法能够使隐藏视频窗口时,对话框背景不闪。不隐藏也可以,关键是怎么解决闪的问题。我要绘制背景了,不需要视频了。

不知道我的问题有没有描述清楚。


回帖有分。



------解决方案--------------------------------------------------------
IVideoWindow的put_Visible可以隐藏和现实视频窗口
------解决方案--------------------------------------------------------
参考DirectShow的VMR示例

------解决方案--------------------------------------------------------
这个帖子我帮你转到 专题开发/技术/项目->多媒体/流媒体开发 版
那里的朋友都是研究这个的
------解决方案--------------------------------------------------------
IVideoWindow的put_Visible(OAFALSE)隐藏就行了!
------解决方案--------------------------------------------------------
你的对话框窗口和dshow中视频实际的窗口并不是同一个窗口,所以对话框中的OnPaint对视频不会有影响,如果想在视频上再画点东西,简单的方法就是在插入一个自定义的Transform filter,在里面对视频数据进行加工处理
------解决方案--------------------------------------------------------
可以这样认为,你用spy++就看得出来。对话框窗口应该在底下,它只负责视频窗口的大小。
------解决方案--------------------------------------------------------
貌似是两个窗口,对话框只控制视频的rect.
------解决方案--------------------------------------------------------
顶起来
------解决方案--------------------------------------------------------
你是要在OnPaint中绘制图像覆盖原先的吗?
------解决方案--------------------------------------------------------
假如仅仅是为了绘图的话,那直接加多一个transfer filter 就可以了,而且这个filter在陆老师的书上有,应该是两个窗口,因为即使没有对话框,也可以播放视频的
  相关解决方案