在网络电视客户端实现窗体淡进淡出的方法

文档序号:6469584阅读:205来源:国知局
专利名称:在网络电视客户端实现窗体淡进淡出的方法
技术领域
本发明涉及一种网络电视客户端,尤其涉及该客户端实现窗体淡进淡出的方法。
背景技术
网络电视,就是将电视机、个人电脑及手持设备作为显示终端,通过机顶盒或计算机接入宽带网络,实现数字电视、时移电视、互动电视等服务。网络电视的出现给人们带来了一种全新的电视观看方法,它改变了以往被动的电视观看模式,实现了电视按需观看、随
看随停。 但在现有技术的网络电视中,电视客户端无法实现FLASH窗口透明的效果;所谓
FLASH窗口透明是指不显示FLASH控件窗口 ,只显示与FALSH相关的界面。 由于无法解决上述技术问题,未能实现整体窗口的淡进淡出效果。 所谓淡进淡出的效果是指在窗体方面主要表现在通过对当前激活窗体的透明度
的平滑式调节,达到当前激活窗体相较其他非激活窗体,逐步地由100%不透明到100%透
明式隐藏的亮度变换。 上述情况造成的原因是由于在现有技术的网络电视中,传统的实现方式是在窗口上放置一个FLASH ActiveX控件然后从控件中加载FLASH到应用程序中;如果只想显示FLASH画面而不显示FLASH窗口及其控件的背景此种方式就无法实现。要将窗口背景透明只能调用USER32. LIB库中的UpdtateLayeredWindow ()或者SetLayeredWindowAttributes ()方法来实现窗口背景的透明。但调用这两个方法时对窗口窗口有个要求窗口的样式必须是WS—EXJJVYERED并且窗口不能为子窗口。而且当窗口透明后其该窗口的子窗口也会跟着透明。这样在对传统的FLASH窗口调用UpdtateLayeredWindow()或者SetLayeredWindowAttributes ()时会使FLASH控件窗口也跟着透明同时引起了控件上的FLASH也透明掉。

发明内容
本发明需要解决的技术问题是提供了一种在网络电视客户端实现窗体淡进淡出的方法,旨在解决上述的问题。 为了解决上述技术问题,本发明是通过以下步骤实现的 程序初始化; 创建CDialog宿主非模态窗体;通过OLE组件创建0LEWindow ; 在OLE窗体事件中,通过鼠标滚轮来判断窗体亮度;当亮度上升时,透明度下降;当亮度下降时,透明度上升;然后通过对FLASH的OLE对象调用SetVariable ()方法设置FLASH影集的_alpha属性来设置FLASH的透明度,由0LEWindow创建的FLASH窗体来实现FLASH透明度的变化; 通过调用FLASH界面元素来体现原始FLASH风格;
OleDraw()绘制窗体进行FLASH透明处理。 与现有技术相比,本发明的有益效果是将FLASH的相关接口通过COM遍历相关的 INTERFACE,通过FLASH动画与OLE窗口之间交互实现Flash窗口的透明,完全保持FLASH 原始外貌。


图l是本发明的流程图。
具体实施例方式
下面结合附图与具体实施方式
对本发明作进一步详细描述 由图1可见本发明是通过以下步骤实现的 1、程序初始化; 2、创建CDialog宿主非模态窗体; 3、通过OLE组件创建OLEWindow ; 4、在0LE窗体事件中,通过鼠标滚轮来判断窗体亮度;当亮度上升时,透明度下 降;当亮度下降时,透明度上升;然后通过对FLASH的OLE对象调用SetVariable ()方法设 置FLASH影集的_alpha属性来设置FLASH的透明度,由OLEWindow创建的FLASH窗体来实 现FLASH透明度的变化; 5、通过调用FLASH界面元素来体现原始FLASH风格;
6、 OleDraw ()绘制窗体进行FLASH透明处理; 在步骤"3"中,首先要创建 一 个窗口和OLE窗体容器 IOlelnPlaceSiteWindowless ;然后将窗口和OLE窗体容器关联起来,这样就可以通过 OleDraw()对窗口进行相应的绘制操作; 在步骤"5"和"6"之间还有"通过SetLayeredWindowAttributes设置其它窗体透 明"步骤。 本发明通过将FLASH界面封装到OLE窗口 ,然后由OLE控件对FLASH界面进行 QUERY调用;将帧图像转换成原始位图; 根据鼠标滚轴返回的数值(0-100)设置窗体亮度实现半透明。 本发明中所采用的OLE技术是现有技术;Object Linking and Embedding是对象
连接与嵌入,简称OLE技术。OLE不仅是桌面应用程序集成,而且还定义和实现了一种允许
应用程序作为软件"对象"(数据集合和操作数据的函数)彼此进行"连接"的机制,这种连
接机制和协议称为部件对象模型。 OLE是在客户应用程序间传输和共享信息的一组综合标准。允许创建带有指向应 用程序的链接的混合文档以使用户修改时不必在应用程序间切换的协议。OLE基于组件对 象模型(COM)并允许开发可在多个应用程序间互操作的可复用即插即用对象。该协议已广 泛用于商业上,在商业中电子表格、字处理程序、财务软件包和其他应用程序可以通过客户 /服务器体系共享和链接单独的信息。 OLE是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(COM)。
权利要求
一种在网络电视客户端实现窗体淡进淡出的方法,是通过以下步骤实现的(1)、程序初始化;(2)、创建CDialog宿主非模态窗体;(3)、通过OLE组件创建OLEWindow;(4)、在OLE窗体事件中,通过鼠标滚轮来判断窗体亮度;当亮度上升时,透明度下降;当亮度下降时,透明度上升;然后通过对FLASH的OLE对象调用SetVariable()方法设置FLASH影集的_alpha属性来设置FLASH的透明度,由OLEWindow创建的FLASH窗体来实现FLASH透明度的变化;(5)、通过调用FLASH界面元素来体现原始FLASH风格;(6)、OleDraw()绘制窗体进行FLASH透明处理。
2. 根据权利要求1所述的在网络电视客户端实现窗体淡进淡出的方法,其中在步骤"(3)"中,首先要创建一个窗口和OLE窗体容器IOlelnPlaceSiteWindowless ;然后将窗口和OLE窗体容器关联起来,这样就可以通过OleDraw()对窗口进行相应的绘制操作。
3. 根据权利要求1或2所述的在网络电视客户端实现窗体淡进淡出的方法,其中在步骤"(5)"和"(6)"之间还有"通过SetLayeredWindowAttributes设置其它窗体透明"步骤。
全文摘要
本发明涉及一种在网络电视客户端实现窗体淡进淡出的方法,是通过以下步骤实现的程序初始化;创建CDialog宿主非模态窗体;通过OLE组件创建OLEWindow;在OLE窗体事件中,通过鼠标滚轮来判断窗体亮度;当亮度上升时,透明度下降;当亮度下降时,透明度上升;然后通过对FLASH的OLE对象调用SetVariable()方法设置FLASH影集的_alpha属性来设置FLASH的透明度,由OLEWindow创建的FLASH窗体来实现FLASH透明度的变化;通过调用FLASH界面元素来体现原始FLASH风格;OleDraw()绘制窗体进行FLASH透明处理;本发明的有益效果是将FLASH的相关接口通过COM遍历相关的INTERFACE,通过FLASH动画与OLE窗口之间交互实现Flash窗口的透明,完全保持FLASH原始外貌。
文档编号G06F9/44GK101751250SQ20081020386
公开日2010年6月23日 申请日期2008年12月2日 优先权日2008年12月2日
发明者任义兵, 司强, 吴会然, 张大钟, 张维澜, 戚功文, 王宁, 芮斌, 葛乐, 袁舜彦 申请人:上海东方宽频传播有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1