桌面背景播放是怎么实现的?

解决方案 »

  1.   

    winamp很早就做出这个效果了,我想可能是把窗体放在Z坐标的最低层,可以看看关于设置窗体位置的API
      

  2.   

    用函数:(随手写的,自己去查资料)方法1:
    TransparentBlt(getdc(0),--------------------------------)方法2:
    先setwindowlong(hwnd,wm_exstyle,wm_ex_layered)让它支持下面的函数
    再setlayeredattributes()
    (这个方法可以做类似瑞星杀毒软件那个桌面小宠物)
     
      

  3.   

    我曾经看见过这个功能实现的原理
    实际上,桌面是分层的,显示动画只不过是在桌面与操作界面间加了一个显示层而已
    我记得当你播放的时候,你使用全屏截图按钮时候,截取的图片不是当时电影的图片
    其实只是在系统桌面上加入了一个图层,好像运用DirectX可以轻松实现.
      

  4.   

    我用WinDVD看到这一功能了。其实是DirectShow窗口,要用到DirectX技术的。
      

  5.   

    如果你像豪杰3000那样自己写MPEG解码程序的话 你也能办到:
    把解出的一行行DIB位图数据用SetDIBits写到桌面窗口
    注意要隔一行(既只绘制0,2,4,8,……行),这样才像半透明
      

  6.   

    解霸5.5到2000都是用的这一个方法,以前用画图时偶然发现的,[曾经在电脑报上介绍过,记不得是那一期了,  :|  ]大概是这个样子的,解霸有一个颜色是Mask色,只要把桌面色改变为相同的值,这个颜色就会产生透明的效果,以前本人还试过把屏保的颜色改为这种Mask色,也可以有这种效果,现在的金山影霸[本人用的是金山影霸2003-5.0.0.2811版]仍然是用的这个方法,不过,和豪杰的Mask色不一样...
    记得RealPlay8好像也是有这个功能,不过,记不太清Mask色是多少了,现在RealPlay8也不太好找到了...这可能是Windows9X的一个显示方式上的小BUG吧,也可能是故意做的....呵呵..
    因为,这三款软件只有金山影霸2003是专门做的这个功能,其它两款软件都是要自己把桌面颜色设置为相应的Mask色才可以实现这种效果....金山影霸的Mask色RGB(16,16,16)
    解霸5.5到2000的MASK色RGB(255,0,255)
    注意,解霸3000用的不是这个方法,好像用的是zyl910说的那种,不过,
    在我的机子上有时候总是不能显示出来背景播放效果,不知道是不是这个
    新技术有缺陷还是我的机子系统有问题,我可用的是正版呀,不过在公司的
    机子上这个功能好像也不怎么好用....注意,以上说的现象都是指在Windows98SE(第二版)环境下实现的,
    至于其它的环境下俺还没试过,如果有谁试过了,希望可以告诉我一下.谢谢了!  :)
      

  7.   

    不是半透明,是完全就不显示这种颜色,就像在播放器里看一样....我知道Zyl910说的那种方面,就是隔行扫描,像PS模拟器里的模拟电视扫描线一样的效果,我上面说的绝对不是这种。。
      

  8.   

    如果你有机会,可以自己试一下,要98SE+解霸5.5或2000,3000不行,KingPlay2003也可以,你在使用KingPlay2003的时候,把其它的什么东西,比如,任务栏,菜单选中等的颜色也调成那种RGB(16,16,16)也可以透明,或,你自己用VB做一个FORM,把BACKCOLOR设置为RGB(16,16,16)也可以实现..注意,RGB(16,16,16)是解[email protected]的Mask色,
    解霸的Mask色见上面的贴子...
      

  9.   

    对了,这个问题我以前提过,不过,也是没有找到什么好的解决方法因为1.我们不能自己设置播放器或控件的"Mask"(暂且这样叫)色,因
    为我们不能自己写播放器或控件[VB做不到,VC差不多]
    2.用VB做隔行扫描,也不太实际,因为,要在播放控件上做逐点取
    色或获取其DC都不是太方便,一是因为太慢,二是好像现在的免费
    视频播放控件都不太好获取DC[至少俺用的M$那几个都有这毛病]
    ,原因大概是这类控件大都用了DX编程吧...呵呵,也不是非常懂,还望大家多指教...