`
yiyeqinghuasoon
  • 浏览: 643899 次
文章分类
社区版块
存档分类
最新评论

GIF动画,VB6永远的痛

 
阅读更多

数据库操作,界面处理再也没有比VB更快的开发工具了,当然工程师们有了自己的类库和模块

以后C++同样也可以很快,但是对于新手以致普通程序员,这些只是传说,VB6给程序员提供了

一种快速的编程通道,毫不费力的开发出Windows程序的框架来.

在应用软件开发取得效率霸主的同时,对编程细节的隐藏使得VB6受到控件功能的强烈限制,

代码的执行速度,使大型3D游戏和大量数据处理对VB6来说,只是一种传说和对岸的美景...

Image控件和Picture控件,VB图形处理的主要控件,Picture具有hWnd等窗口具有的属性

可以作为容器,可以执行DC的操作,Image则可以显示部分透明的GIF图片.

然而欲望刺激需求,使得需求永远超越了供给:VB对所有图形的处理都是转化为位图形式的,

Image中的GIF和背景的融合程度让人着火,另外一个就是GIF动态图片,VB中无法直接实现

的功能,此外PNG等游戏常用格式,VB里也是空白..

惨剧啊!就这么完了吗?不!任何支持二进制操作的程序语言都能实现其他任何语言的功能:

二进制,最底层程序状态是一种语言在程序长河上的一叶小舟,下面就让我们谈谈,VB该怎么

实现GIF动画:

很多人都选择了WebBrowser控件,这个控件是在程序中嵌入网页用的,比如游戏登录器那里

显示官网等等,不过显示效果有限,像有些人想做聊天的软件,图文混排就成了大大的麻烦了.

WebBrowser1.Document.open
WebBrowser1.Document.writeln"<HTML>"
WebBrowser1.Document.writeln"<HEAD>"
WebBrowser1.Document.writeln"<TITLE>"
WebBrowser1.Document.writeln"</TITLE>"
WebBrowser1.Document.writeln"</HEAD>"
WebBrowser1.Document.writeln"<BODYscroll="&VBA.Chr&"no"&VBA.Chr&"oncontextmenu=self.event.returnValue=false>"
WebBrowser1.Document.writeln"<divstyle="&VBA.Chr&"position:absolute;left:0;top:0"&VBA.Chr&">"
WebBrowser1.Document.writeln"<IMGSRC="&VBA.Chr&strPath&VBA.Chr&"BORDER="&VBA.Chr&"0"&VBA.Chr&">"
WebBrowser1.Document.writeln"</div>"
WebBrowser1.Document.writeln"</BODY>"
WebBrowser1.Document.writeln"</HTML>"

strPath 是本地GIF文件路径或者网络图片路径

我们可以看到,WebBrowser装载的是html语言,当然还有其他方法如

WebBrowser1.Navigate App.Path & "/1.GIF"

这种简单,但是没有图文混排什么的

AniGIF控件

不过似乎这控件要很多麻烦的东西才可以用,用法就简单多了

AniGIF1.FileName = "..."

AniGIF1.ReadGIF("...")

AniGIF1.Play

再有一种就是基于VB自己的,也就是这样才像程序设计的样子:

Image+Timer

把GIF分割出很多张图片(一帧一帧提取),可以用其他工具,生成一个Image控件数组

载入各个帧,显示一帧后改变Timer的Interval值,其实GIF的播放也就是这个过程

然而有个问题就是VB处理后的GIF仍然是BMP,无法完美的融合到背景,所以代码暂时也就不发出来了

我在设计一种更有效的方法:C/C++来协助VB处理,生成一个模块发布给大家

使用时只需要传递hWnd或者hDC 以及坐标位置就可以了

敬请期待,嘿嘿!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics