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

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中运行通过。
收藏!斯坦福Andrew Ng教授“机器学习”26篇教程全译 美国云计算价格战爆发 王寒:12岁儿童,该怎样开始iOS开发? 陈昊芝:腾讯!让我说你什么好? Top Paid与Top Grossing定价策略的差异 Android版百度云推送正式发布 为何开发者应推动公司开源? 从AppGratis被下架说起,苹果或将再次付出代价 58同城的“烦恼”——8K月薪安全工程师引发的入侵 软件开发实践的24条军规 思科 IBM 微软等巨头联合开发开源SDN项目OpenDaylight 巾帼不让须眉:2012年度云计算领域Top 10女性 中移动全力推进NFC 5月起乘公交可刷手机 支持Android与iOS,Qt 5.1 Alpha全新亮相 Google Play:劣质Android应用已无藏身之地! 360推出信用网站认证开放平台 联合百家协会围剿钓鱼网站 经验分享:百度测试架构师眼中的百度QA(一) 在线旅行服务行业开放API带来的新机遇 专访:悬疑恐怖游戏Year Walk美术及音效设计师 解密:微软都柏林数据中心的神秘“免费冷却”装置 云计算如何影响数字化营销? 榜单:十位帮我们打理数据的存储大佬 OpenStack Grizzly版发布 Comcast、CERN成为新会员 谷歌携Blink来势汹汹 WebKit将成明日黄花? 星巴克与苹果合作 顾客可免费下载付费App 微信回应信令争议 将启动2.5G网络优化计划 凤凰网CTO吴华鹏离职 先后供职长达10年 外媒:开发者每周编码时间仅19.1小时 AppGratis CEO现身说法:应用被苹果儆杀始末 一个Web设计师眼里的云计算 戴尔高管:服务器业务领先惠普五年时间 cout的问题(20分). 关于vector<string>的问题(40分). 有没有上海双杨的PB高手? 在pb中怎样写自动递加的序列号?? 我的visio 2000一旦启动以后,就会说遇到问题需要关闭 请问一个关于连接SQL SERVER2000的问题 两行数据重名,查询的时候只能显示其中一个,怎么处理? 在vbscript中的"%TEMPLATEDIR%\wvline.gif"的"%..%"是什么意思? 一个非常棘手的问题,求求各位了!是关于字符转换的!求求各位大侠! 找人 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 关于Dll里导出VCL控件的问题。。。高手请进。。。。。。 紧急求救!!! 如何制作浮动面板? 给分的问题! 如何获得 mod_webapp.so 紧急求救 想知道各位WINDOWS下用什么SNIFFER? 对于网络上的第三方控件的看法 简单问题?JTable中的数据如何居中对齐,有没有直接的函数(不用自定义CellRenderer) 有关析构函数 请问一个小问题 关于ADO中ltBatchOptimisticr的FilterGroup的问题 两个星要到多少分才能升到三个星呀 请问有谁知道北京的成人教育大致的情况如何? 是VC编译器不符合ANSI C++,还是?? 我现在在写个程序!是关于证券方面的!可是如下的一个小问题如何解决?? ★★如何让excel的某行的值等于另一行的值乘以一个固定值(急问,在线等待)★★ @@@开学了,散分! 怎样构建一个LDAP服务器和怎样使用 用VFW采集时进行压缩的问题。求解 C# 在DW MX中如何进行层定位? 回复:機會不要錯過! 華強科技有限公司幫你成就軟件工程師的夢想! How to access SMB/CIFS from Sun workstation? 谁来拿分啊。我有一个问题自己解决了,但没有给分的对象。 问一个message Bean的问题,up有分 [EJB]HelloWorldBean正确编译配置和执行,但"HelloWorld"却不见了 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 如何让主界面变成三维的那种 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 用什么组件能得到网站上的末知大小的文件? 问一个简单的问题 还是有问题关于获得选中安钮的当前行,请进>> 请教简单问题,如何将菜单的一个选项隐藏。就是类似cb的将Visible=false的做法!! 连接ACCESS数据库的问题? 寻C语言编程高手!现有一IP地址和网页、搜索栏关键词拦截程序需要编写,付酬!!! 如何提取一个EXE文件的特征码??要高分者和高手进!!!!来者有分! j2ee配置问题,大家帮我看看,错误出在哪里?谢了! 如何在注册表中修改使得浏览的网页可以即时通过工具栏的“编辑”调用DW修改? "聊聊"网站是怎样建的?用拉什么技术,可以即使聊天? 一个圆锥体积是12.56cm立方,比等底等高的圆柱体积少()立方cm 人生寓言白兔和月亮第四段的仍然好在什么地方 在一个圆柱形水桶里,把一段半径是3cm的圆柱形钢材全部垂直放入水中,水面上升10cm,把它竖直拉出来6cm,水面又下降了7cm,求这段钢材的体积? 甲乙两人在一条东西方向的公路方向的公路上行走,甲,在乙西300米甲向东走,乙向西走,2分钟后相遇.两人都向东走,半个小时甲追上乙,求两人的速度 一个圆柱体积18立方cm,高是10cm,把这个圆柱削成一个最大的圆锥体,削去部分体积是()写算式,写清楚,要写得数. 北方和南方农耕文化的相同点和不同点? 动物都要经历哪四个阶段 小轿车上五人.大客车上的人数比小轿车多26人.问两辆汽车上一共有多少人? 电源电压为10V,电压表示数为4V,则灯L1.L2两端的电压各为多少? AB两点,甲乙两人相向而行.甲比乙的速度快.甲距离B点240米时与乙相遇.甲乙继续行走到达终点时原路返回.甲距离A点120米时再次与乙相遇.AB两点距离是多少? 去年小麦种植面积为"1",今年种植面积比去年增加20%.今年种植面积是去年的?% 英语翻译“一个人的生活,过一个人的生日.”翻译成英文怎么说? 甲乙两人步行的速度比是9:7,若甲乙分别由AB两地沿同一公路同向而行,则甲追上乙需4时,若相向而行,则多少时间相遇? 小汽车每辆能坐4人,大客车能坐25人,有3辆小汽车和1辆大客车,问一共能坐多少人?求这道题的答案 围绕克隆技术真神奇来写一段话 ___mol的CO2中含有3g碳 刘庄村今年小麦播种面积比去年增加了10%.今年播种小麦39.6公顷,去年播种多少公顷? 克隆技术奇妙在:第一第二第三要短 如图,已知等腰三角形ABC的底边BC=10cm,顶角为120°,求它的外接圆的直径 一辆轿车可坐4人,一辆客车再多坐2人就是小轿车的10倍.一辆大客车可乘坐多少人 克隆技术神奇在哪 几摩尔的二氧化碳中含有三克碳 今年小麦播种面积比去年增加了5/12,是把【】看作单位1,关系式为【】 克隆技术多么奇妙啊!假如我会克隆,我会怎样? 等腰△ABC的底边BC的长为a,顶角为120°,求它的外接圆的直径 今年小麦的播种面积是去年播种面积的13/12,这里是把谁看作单位1? 某工程基础平面图和剖面示意图如下,计算人工挖地槽长度及土方工程量.(工作面c=300mm;放坡系数K=0.3;1 已知等腰三角形ABC的底边BC=10cm,顶角为120°,求它的外接圆的直径 爱在细微处作文【600】字 我是新手,没多少积分, 如何提高英语学科教学成绩 等腰三角形ABC的顶角∠A=120° BC=12 求它的外接圆的直径w 东北平原比南方种植水稻有利的气候条件 50亿0402万约等于几万? 在等腰三角形ABC中,∠BC=120度,点P是底边AC上一个动点,M,N分别是AB,AC上上的中点,若PM+PN的最小值为2,则三角形ABC的周长是多少? 中南半岛种植水稻的有利条件(地形气候方面) 50亿年等于多少秒 排水管道,检查井有支管接入,上下游管道有跌水,支管该怎么接?支管与上下游管道的管底标高差有什么要求支管的埋深是不是不能低于与下游管道采取管顶平接时的埋深?如果这样,跌水水头大 白兔和月亮 读后感 600字今天就要 已知等腰三角形ABC内接于半径为5的圆O,如果底边BC长为6,则底角的正切值为 检查井管内底标高为什么标在圆圈中间?每个检查井都会画一个十字,然后标高就从十字的中心指出,就算没有画十字的检查井标高也都标在圆圈的最中心位置,这是为什么呢?为什么一定要标在 抄一份材料,每分钟抄30字,若干分钟抄完,当抄写2/5时,决定提高效率50%,结果提前20分钟抄完,这有多少抄一份材料,每分钟抄30字,若干分钟抄完,当抄写2/5时,决定提高效率50%,结果提前20分钟抄完, 小学第一节体育课怎么上? 为什么1+3会等于4 抄写一篇文章,每分钟可抄30个字,当抄了2/5的时候,抄写速度提高到每分钟45个字,结果提前20分钟抄完,求这篇文章的字数.(要用一元一次方程解)! 如何上好小学体育课 有一个高24厘米,底面半径为10厘米的圆柱形容器,里面装了一半水,先有一根长30厘米,底面半径为2厘米的圆柱体木棒,将木棒竖直放入容器中,使木棒底面与容器底面接触,这时水面升高(D)厘米. 抄写一份材料,如每分抄30个字,则若干小时可抄完,当抄完2/5的时候,决定将效率提高40%,结果提前半%抄写一份材料,如每分抄30个字,则若干小时可抄完,当抄完2/5的时候,决定将效率提高40%,结果提 请问谁知道小学体育课教学计划哪儿有 北方是___农业~南方是___农业 抄写一份材料,如每分抄30个字,则若干小时可抄我那,当抄完2/5的时候,决定将效率提高40%,结果提前半小时抄完,问这份材料共有多少字?请用一元一次方程解 RNA是否只分为tRNA,mRNA,rRNA?那么作为RNA病毒的遗传物质RNA有属于哪类呢? 南方以水田农业为主,北方以旱地农业为主,西北发展畜牧业,形成这种生产活动地域差异的主要因素是降水为什么是降水,而不是热量 或者是土壤呢? 抄写一份材料,若每分钟抄写30个字,则用若干小时可抄完.当抄完2/5时,决定将效抄写一份材料,若每分钟抄写30个字,则正好在计划时间内抄完。当抄完2/5时,决定将效率提高40%,结果比原计 1.2亿等于几万 有甲 乙两个大小不同的圆柱形容器 甲容器的底面半径的24厘米 乙容器的底面半径是12CM 已知30厘米深的水乙容器无水 现将甲容器的一部分谁倒入乙容器 使两个容器中的水面高度相等,此时水 灯泡L1和L2串联在电路中,加在它们两端的总电压为12V,L1的电阻是8Ω,L1两端的电压是4V,求L1中的电流.【图】(自己画)已知:求: 月球车玉兔是什么 有一个高为24厘米,内底面半径为4厘米的圆柱形容器,里面装了一半的水,把一跟长L厘米,底面半径为2厘米的圆柱玻璃b棒,竖直放入容器中,使棒的地面与容积底面接触,根据L分别求出水面升高了 甲和乙分别从a b同时相向而行,甲每分走100米,乙每分120米,甲与乙相遇后又走了9分钟才到b地.求a到b的距离 11亿日元相当于多少人民币?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘