桌面背景播放是怎么实现的? 桌面背景播放是怎么实现的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 winamp很早就做出这个效果了,我想可能是把窗体放在Z坐标的最低层,可以看看关于设置窗体位置的API 用函数:(随手写的,自己去查资料)方法1:TransparentBlt(getdc(0),--------------------------------)方法2:先setwindowlong(hwnd,wm_exstyle,wm_ex_layered)让它支持下面的函数再setlayeredattributes()(这个方法可以做类似瑞星杀毒软件那个桌面小宠物) 我曾经看见过这个功能实现的原理实际上,桌面是分层的,显示动画只不过是在桌面与操作界面间加了一个显示层而已我记得当你播放的时候,你使用全屏截图按钮时候,截取的图片不是当时电影的图片其实只是在系统桌面上加入了一个图层,好像运用DirectX可以轻松实现. 我用WinDVD看到这一功能了。其实是DirectShow窗口,要用到DirectX技术的。 如果你像豪杰3000那样自己写MPEG解码程序的话 你也能办到:把解出的一行行DIB位图数据用SetDIBits写到桌面窗口注意要隔一行(既只绘制0,2,4,8,……行),这样才像半透明 解霸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(第二版)环境下实现的,至于其它的环境下俺还没试过,如果有谁试过了,希望可以告诉我一下.谢谢了! :) 不是半透明,是完全就不显示这种颜色,就像在播放器里看一样....我知道Zyl910说的那种方面,就是隔行扫描,像PS模拟器里的模拟电视扫描线一样的效果,我上面说的绝对不是这种。。 如果你有机会,可以自己试一下,要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色见上面的贴子... 对了,这个问题我以前提过,不过,也是没有找到什么好的解决方法因为1.我们不能自己设置播放器或控件的"Mask"(暂且这样叫)色,因为我们不能自己写播放器或控件[VB做不到,VC差不多]2.用VB做隔行扫描,也不太实际,因为,要在播放控件上做逐点取色或获取其DC都不是太方便,一是因为太慢,二是好像现在的免费视频播放控件都不太好获取DC[至少俺用的M$那几个都有这毛病],原因大概是这类控件大都用了DX编程吧...呵呵,也不是非常懂,还望大家多指教... 生成序列化的字符串问题 本人想拜师学VB,本人有一定的VB基础,愿意收徒的加我QQ14919153 关于连接EXCEL,和在EXCEL中查询的问题.各位帮忙看看 MSHFlexGrid的排序问题 VB6多线程问题——高手请进! msflexgrid的小难题?? TOOLBAR的问题! 有关ListView控件的问题,在线等 请问:怎么才能彻底地隐藏属性为“隐藏”的文件,即:即使选择“显示所有文件”也看不到该文件! 请高手看一下! 急!datagrid,adodc链接.dbf得文件怎样做? 请问,开发网络版软件一定要用SQL SERVER 数据库吗?
TransparentBlt(getdc(0),--------------------------------)方法2:
先setwindowlong(hwnd,wm_exstyle,wm_ex_layered)让它支持下面的函数
再setlayeredattributes()
(这个方法可以做类似瑞星杀毒软件那个桌面小宠物)
实际上,桌面是分层的,显示动画只不过是在桌面与操作界面间加了一个显示层而已
我记得当你播放的时候,你使用全屏截图按钮时候,截取的图片不是当时电影的图片
其实只是在系统桌面上加入了一个图层,好像运用DirectX可以轻松实现.
把解出的一行行DIB位图数据用SetDIBits写到桌面窗口
注意要隔一行(既只绘制0,2,4,8,……行),这样才像半透明
记得RealPlay8好像也是有这个功能,不过,记不太清Mask色是多少了,现在RealPlay8也不太好找到了...这可能是Windows9X的一个显示方式上的小BUG吧,也可能是故意做的....呵呵..
因为,这三款软件只有金山影霸2003是专门做的这个功能,其它两款软件都是要自己把桌面颜色设置为相应的Mask色才可以实现这种效果....金山影霸的Mask色RGB(16,16,16)
解霸5.5到2000的MASK色RGB(255,0,255)
注意,解霸3000用的不是这个方法,好像用的是zyl910说的那种,不过,
在我的机子上有时候总是不能显示出来背景播放效果,不知道是不是这个
新技术有缺陷还是我的机子系统有问题,我可用的是正版呀,不过在公司的
机子上这个功能好像也不怎么好用....注意,以上说的现象都是指在Windows98SE(第二版)环境下实现的,
至于其它的环境下俺还没试过,如果有谁试过了,希望可以告诉我一下.谢谢了! :)
解霸的Mask色见上面的贴子...
为我们不能自己写播放器或控件[VB做不到,VC差不多]
2.用VB做隔行扫描,也不太实际,因为,要在播放控件上做逐点取
色或获取其DC都不是太方便,一是因为太慢,二是好像现在的免费
视频播放控件都不太好获取DC[至少俺用的M$那几个都有这毛病]
,原因大概是这类控件大都用了DX编程吧...呵呵,也不是非常懂,还望大家多指教...