说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Visual Basic 5.0中实现视频画中画

HTML文档下载 WORD文档下载 PDF文档下载
Visual Basic 5.0中实现视频画中画

在VISUAL BAISC 5.0中可以使用播放视频动画文件(*.AVI)的方法在我们的软件中加入动画效果,但在软件中如何实现视频画中画的效果呢?经笔者摸索,发现利用WIDOWS 95的API函数mciExecute、mciSendString和SetWindowPos可实现这一效果。

下面笔者以最常用的大画面中叠加小画面为例来说明视频画中画的实现方法。

一、建立窗体。进入VISUAL BAISC 5.0系统环境,建立一个新的窗体FORM1。

二、建立视频窗口。在这里笔者使用了一大一小的两个图画框(PictureBox)作为视频窗口。选择控件工具箱中的PictureBox控件,在窗体中拉出两个方框(Picture1和Picture2)。其中Picture1为大画面,播放AVI01.AVI文件;Picture2为小画面,播放AVI02.AVI文件。

三、编写相应控件的脚本。

通用模块:

Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String,ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

FORM1的ACTIVATE过程:

Dim AA As Long

Dim PlayAvi As Long

Dim tmpVal As String

Dim KeyValSize As Long

On Error Resume Next

tmpVal = String$(1024, 0)

KeyValSize = 1024

PlayAvi = mciSendString("STATUS AVI01 READY" + Str(Picture2.hwnd),tmpVal, KeyValSize, 0)

If PlayAvi <> 263 Then

PlayAvi = mciExecute("close AVI01")

End If

tmpVal = String$(1024, 0)

KeyValSize = 1024

PlayAvi = mciSendString("OPEN AVI01.AVI ALIAS AVI01 TYPE AVIVIDEO STYLE CHILD PARENT " + Str(Picture2.hwnd) + " WAIT", tmpVal, KeyValSize, 0)

x1Pos = Picture1.Width

y1Pos = Picture1.Height

tmpVal = String$(1024, 0)

KeyValSize = 1024

AA = mciSendString("STATUS AVI01 WINDOW HANDLE WAIT", tmpVal, KeyValSize, 0)

If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then

tmpVal = Left(tmpVal, KeyValSize - 1)

Else

tmpVal = Left(tmpVal, KeyValSize)

End If

AA = SetWindowPos(tmpVal, 0, 0, 0, x1Pos, y1Pos, 0)

AA = mciExecute("WINDOW AVI01 STATE SHOW")

tmpVal = String$(1024, 0)

KeyValSize = 1024

PlayAvi = mciSendString("STATUS AVI02 READY" + Str(Picture1.hwnd), tmpVal, KeyValSize, 0)

If PlayAvi <> 263 Then

PlayAvi = mciExecute("CLOSE AVI02")

End If

tmpVal = String$(1024, 0)

KeyValSize = 1024

PlayAvi = mciSendString("OPEN AVI02.AVI ALIAS AVI02 TYPE AVIVIDEO STYLE CHILD PARENT " + Str(Picture1.hwnd) + " WAIT", tmpVal, KeyValSize, 0)

x1Pos = Picture2.Width

y1Pos = Picture2.Height

tmpVal = String$(1024, 0)

KeyValSize = 1024

AA = mciSendString("STATUS AVI02 WINDOW HANDLE WAIT", tmpVal, KeyValSize, 0)

If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then

tmpVal = Left(tmpVal, KeyValSize - 1)

Else

tmpVal = Left(tmpVal, KeyValSize)

End If

AA = SetWindowPos(tmpVal, 0, 0, 0, x1Pos, y1Pos, 0)

MciExecute "WINDOW AVI02 STATE SHOW"

MciExecute "PLAY AVI01 REPEAT"

MciExecute "PLAY AVI02 REPEAT"

On Error GoTo 0

FORM1的QueryUnload过程:

mciExecute "STOP AVI01"

mciExecute "STOP AVI02"

mciExecute "CLOSE AVI01"

mciExecute "CLOSE AVI02"

运行此程序可见两个动画同时播放,实现了视频画中画的效果。以上程序在VISUAL BAISC 5.0及WINDOWS 95中运行通过。
友盟2015年Q1移动互联网报告:车联网App崛起 多面编程语言Scala NEC高可用集群软件EXPRESSCLUSTER X3.3面向中国市场正式发布 【探秘ES6】系列专栏:模版字符串 专访图书作者祁宇:C++11让程序更简洁、更现代、更强大 滴滴打车CTO张博:生死战役,技术和时间赛跑 Qualcomm拥抱创客文化:如何基于DragonBoard 410c创造和创业? 【探秘ES6】系列专栏:剩余参数和默认参数 专访资深程序员庄晓立:我为什么要选择Rust? 主会讲师确认,2015中国人工智能大会火热报名中 容联&#183;云通讯线下沙龙:IM 5.0助力App社交化 【CTO讲堂】全数据驱动产品优化,美国互联网公司A/B测试经验分享 《近匠》易快报:以报销做企业消费场景下的Slack 纷享销客D轮融资1亿美金,启动开放平台战略! 专访4秒源码商城CTO陈杰:扎根互联网的“不安的心” iOS UIView动画实践(一):揭开Animation的神秘面纱 【前端人生】Teambition前端工程师陈涌:非计算机专业,依托社区不断成长壮大 iOS UIView动画实践(二):Spring Animation与人机交互 基因组与数据整合:DNA应用开发正在临近 2015 PHP框架调查结果出炉,Laravel最受欢迎! 【CTO会员专访】KEEN创始人兼CEO王琦:在GeekPwn,遇见一极棒的安全人才 创业公司都在使用的3款Python库 深入理解Objective-C的Runtime机制 你不知的Docker 创办人兼CTO游走美法的浪漫狂放 《近匠》环信CEO刘俊彦:移动客服的未来化场景 iOS UIView动画实践(三):Transition Animation 【CTO讲堂】无社交,不App!——为App加载强大的通讯社交引擎 【探秘ES6】系列专栏(七):箭头函数 【前端框架】Backbone.js在大型单页面应用中的应用实践 【探秘ES6】系列专栏(六):解构赋值 《近匠》TestBird,专注的手游自动化云测试平台 有没有非教育网下载visualage for java 4.0 请教:怎样记录浏览器访问过的地址? ChinaRen实在是太差了!!!!我讨厌ChinaRen!!! 偶觉得湘妹子既可以是红粉知己,也可以是居家老婆,一句话:人生何所求,得一湘妹子足矣! 怎样通过程序设置使浏览器不出现工具条和minibox,maxbox 如何修改注册表来删除ie中的查看》浏览栏按钮? 关于函数指针的问题,欢迎讨论. 还是没有解决的问题:关于VFP报表打印的问题—急急急! moden是否有物理地址 如何用Delphi或C++Builder代码实现一个程序关闭另处一个应用程序。 请各位推荐几本好一点的JAVA参考书,THANKS 这样的代码为什么不能连接SQL SERVER数据库 当二个进程运行时,几就是两次运行FTP 动画关闭窗体API的问题 什么叫串行端口,什么叫并行端口? 程序员级考试就是中级考试吧 各位高手:请问*.html和*.htm文件有何区别? 在活动目录中如何实现组的嵌套? swing窗口布局的问题 毕设还要翻译6000子科技文献,谁介绍一篇呀! 介绍几个考中级的网址来噶 CNET网站重新架构,我们的链接也要改了~~ 急,真的急 各位,有谁能告诉我怎样使得程序中每个Show的窗体都以新窗体出现在任务栏。(答对了一定加分!!!!) 能不能获得来访者的计算机名 help me!高手请看! 11号帖子,救命呀,很急,很重要! 怎样在恢复一个被删除的文件时恢复文件全名? 我急!深夜提问!大家看一看 有谁告诉我Microsoft Visual InterDev 6.0如何使用其中的站点管理 如何在Word工具条上加一个按钮 请问系统和上网的速度有关系吗 急需foxpro for win版,哪有??? 请教一下,ado.net里如何返回表里的行数? 如何在HTML页面中使用 Acrobat 的 PDF 阅读器控件 关于一个遗传算法得问题!! 请问一个TSR问题! 关于跨数据库查询的问题 请问在ListBox中可不可以将每一行字符串设置成不同的颜色? vb6.0中如何将dbgrid里的内容添加到数据库里? 请问怎样才能将窗体上的最大化按钮设置成无用,而保留最小化按钮? 各位专家:请问win2000 PRO 下的config.msi目录中的好多以rbf为扩展名的文件是什么文件?有什么用?可以删除吗? ASP.NET中DATAGRILD的烦人处 新手问两个简单的问题??? 想知道如何才能看见前页纸油笔写过后留下的字迹?(散分) 为什么用odbc连接的paradox表不能编辑? 哪位大侠帮看一下代码(关于链表),为何出"invalid type argument of `->'"的错 一个非常非常想从事计算机软件开发的愿望 关于Hook的一个小问题 文档视图结构中无法显示编辑框,怎么办啊??用什么代替啊 十万火急! 通过网络,进行语音聊天的程序。 abcd是不同的质数,a+b+c=d,那么abcd相乘的最小的值是多少?请尽量用算术方法做,快来做吧. 有一个等腰直角三角形,它的最长边边长为6厘米,这个三角形的面积是多少平方厘米? 已知a与b互为相反数,且b不等于0,求a+b与b分之a的值 已知abcd都是质数,且a+130=b+95=c+91=d+79.求着三个质数. 二元函数极限,9题2和3 已知a b互为相反数,且a,b不等于0 ,则a分之b的值为 △ABC为等边三角形,AE=CD,AD,BE相交于点P,BQ垂直AD于Q,PQ=3,PE=1 求证:AD=BE 若∠PBQ=30°,求AD的△ABC为等边三角形,AE=CD,AD,BE相交于点P,BQ垂直AD于Q,PQ=3,PE=1 (1)求证:AD=BE (2)若∠PBQ=30°,求AD的长 有甲乙丙三种产品,如果买甲3件,乙2件,丙1件共需315元,如果购买甲1件,乙1件,丙3件共要285元有甲乙丙三种产品,如果买甲3件,乙2件,丙1件共需315元如果购买甲1件,乙1件,丙3件共要285元,那么购买甲 已知a和b互为相反数且b不等于0,求b分之a与a加b的值我知道a加b等于0,但是为什么b分之a等于负1?而且题目是a加b与b分之a的值. 如图,△ABC为等边三角形,AE=CD,AD、BE相交于点P,BQ⊥AD于Q,PQ=3,PE=1,∠PBQ=30°,求AD长 一个等腰直角三角形,最长的边为12厘米,求这个三角形的面积是多少平方厘米? 已知a,b互为相反数且b不等于0,求a,b于a/b的值? 1/a+a/b+5=1/9 b=?(a不等于0) 甲乙丙3种商品,如果购甲3件乙2件丙1件需315元,购甲1件乙2件丙3件需285元.购甲乙丙商品各一件共需多少? 在三角形ABC中,角C=90度,AD平分角BAC,AB=5,CD=2,则三角形ABD的面积 (-0.9)+(-2.7)等于多少 有甲乙丙三种商品,如果购甲三件 乙两件 丙一件需315元 购甲一件 乙两件 丙三件需285元 购各一件需多少元 在三角形ABC中,角C=90度,AC=BC=4,角BAC的平分线交BC于D,求三角形ABD的面积.( 如图△ABC是等边三角形AE=CD,BQ⊥AD于Q,BE交AD于P.BQ⊥AD于Q,连PC,若BP⊥PC,求AP/PQ的值 已知a,b,c都是质数,且满足abc+a=85l,则a+b+c的值为 二元函数的连续和极限二元函数能不能用等价无穷小替换和洛必达定理?为什么? 如图已知△ABC是等腰三角形,AE=CD,AD,BE相交于点P,BQ垂直QD于点Q,猜想BP于PQ的关系,并证明此结论. 二元函数 求极限 在三角形ABC中,∠C=90°,a=6,c=10,则三角形ABC的面积为 如图,在等边△ABC中,AE=CD,AD,BE相交于P 点,BQ⊥AD于Q.连PC,若BP⊥PC,求AP/PQ的值. 二元函数求极限 在三角形ABC中, 已知三角形ABC,角A(0,7),角B平分线方程X-2Y+4=0,角C平分线方程4X+5Y+6=0,求BC直线方程.求简便方法 二元函数的极限 在三角形ABC中,已知BD和CE分别是两边上的中线,并且BD垂直CE,BD=4,CD=6.求三角形ABC的面积不要复制别人的答案说一个我可以听懂的题目上的图形我都画不出来,所以清说详细一点上面题目打错 在三角形ABC中,角C等于角A+角B,那么这个三角形一定是() 求二元函数极限,如下图.不仅说下答案 如图在三角形ABC中,已知BD和CE分别是AC,AB边上的中线,且BD垂直CE,BD=4,CE=6,求三角形ABC的面积. 1.2除7分之6等于多少 请求:二元函数求极限lim (x2+y2 )1/2-sin(x2+y2 )1/2(x,y→0) (x2+y2 )3/2请帮忙解决,题中的数字均为上标(x2+y2 )1/2-sin(x2+y2 )1/2除以 (x2+y2 )3/2当xy均趋于0时,求二元函数的极限 如图,在三角形ABC中,AB=AC,BD,CE分别是边AC,AB上的中线,且BD⊥CE,那么tan∠ABC= A的6分之1等于B的7分之1(A,B均大于0),则A比B小对还是错 a分之|a|的值(a不等于0) 33毫米等于几厘米啊 7分之6等于几分之1加几分之1加几分之1加几分之1 2次函数顶点式y=a(x-x1)(x-x2)是怎么得出这个式子的?请列一下步奏写错了.是交点式 已知正三角形三边长度之和为33厘米,求每边的长 若(a-b):(a+b)=3:7则a:b等于 2次函数一般式变顶点式 一个直角三角形,两个锐角的边长是4厘米求两个锐角阴影面积 第二题,二元函数极限 2次函数怎么化顶点式将y=(1/2)x^2+x-1 化为y=a(x-h)^2+k的形式 注;我不知道怎么化,请详写下步骤,最好加上文字说明 有四个数,每次选取其中三个数算出它们的平均数,用这种方法计算了四次,分别得到四个数:85,92,100,106那么原来这四个数的平均数是( ) 二元函数的极限问题请问大家最后是怎么推导出极限为∞的?为什么当y从趋向于x 和-x时候的极限都为0就知道函数的极限为∞?不是说当f(x,y)从哪个方向趋向于A时f(x,y)就趋向于A那应该函数的极 怎么判断2次函数是顶点式还是一般式还是什么式 4个数每次取3个数,算上他们的平均数再加上另一个数;用这种方法计算了4次,分别得到以下4个数:86,92,100,106,那么原来4个数的平均数是多少? 如图所示,△ABC为等腰三角形,AE=CD,AD,BE相交于点P,BQ⊥AD于Q,PQ=3,PE=1,求AD的长快回答 求二元函数的极限问题如果要证明有极限存在是不是还要用ε-r定理?让r=(x^2+y^2)开根号.是不是求极限的题目一般只要尝试y=kx或=kx^2就可以知结果了?以下为正题~1、____________√x^2 * y^2 +1 — 1— 2次函数顶点式的解析式?到司是y=a(x+h)^2+k 还是y=a(x-h)^2+k △ABC为等边三角形,AE=CD,AD,BE相交于点P,BQ垂直于AD与Q,PQ=4,PE=1求证∠BPQ=60° 如何求这两个二元函数极限 三个数的平均数是86,其中第一个数是92,是第二个数的2倍,第三个是多少 一个等腰直角三角形的直角边场长2.4dm,它的面积是多少平方分米? 由甲乙丙三种货物,若购甲3件,乙7件,丙1件共需20元;若购甲4件,乙10件,丙1件共需27元;若甲乙丙三种货物各买一件需要是多少元? 已知a和b互为相反数且b不等于0,求a+b与b分之a的值.紧急 请回复
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘