DirectShow播放视频图像无法正常显示

本文探讨了在将WinCE下的视频播放器移植到XP环境下时遇到的问题,即播放器在重绘过程中被父窗口背景遮挡。通过在创建播放器窗口的父窗口时传入WS_CLIPCHILDREN参数,可以解决此问题,确保视频图像正常显示而不被遮挡。

       用DirectShow播放视频,只要你能按部就班的调用微软提供的API一般都是没有问题的(在这里就不说DirectShow的使用了)。最近应工作的需要,要把在WinCE下的播放器移植到XP下。本以为应该没有很大问,在XP的环境下移植代码编程成功后,运行时奇迹发生了。点击播放视频图像一闪后就没有视频图像,只能听视频声音。有声音就说明播放正常,那为什么没有图像出来了?

    经过一番的折腾,发现应该是被父窗口背景给覆盖掉了!即当父窗口要求重绘的时候,将视频窗口遮掉。现在问题发现了,那该怎么样才能让父窗口在重绘的时候不遮掉视频窗口呢?

如果你对CreateWindow API 很熟悉的话,这时候你应该知道该怎么解决这个问题了吧?现在我们来看一下MSND CreateWindow用法。如果需要解决我们上面的问题,只要在创建视频窗口的父窗口,在dwStyle 参数传入一个WS_CLIPCHILDREN WS_CLIPCHILDREN:当在父窗口内绘图时,排除子窗口区域即可。

 

注意:在WinCE下没有这个限制。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值