API复制文件的时候,应该没有返回给进度给你吧,如果真要自己去写一个进度,在API没有给你提供的情况下,只有自己写一个复制函数,这样你就可以把 value设置为当前已复制大小,maxinum 设置为文件总长度,文件大小用,new FileInfo(path)Length 可以获取, 如果手写文件复制的话,就是用FileStream 打开源文件,在创建一个新的FileStream,即目标文件,然后一点一点的,从源文件中读出来,再写到新的文件里面
做一个全局静态变量,初始值设置为false,在第一次按下的时候设置为True
在你的执行前(Case 'A'之后)加一个If判断,只有True的时候才响应按键,以后就可以通过控制全局变量控制按键是不是需要响了
seek 命令用法:
到指定的位置播放。
Dim P1 as Long
P1 = 100
mciSendString "seek movie to ", P1, 0, 0 'P1是当前起始位置,单位:毫秒
mciSendString "seek movie to start", 0&, 0, 0 '定位到开头位置
mciSendString "seek movie to end", 0&, 0, 0 '定位到最后位置
status:
1,status position:
获取当前播放位置:
Dim st As String64
mciSendString "status movie position", st, len(st), 0
2,status length:
获取媒体的总长度:
mciSendString "status movie length", st, len(st), 0
l=val(st) 'l就是所播放文件的长度
Dim ST As String 64
- -! 这个可不是乘以的意思啊! 像C里面的指针等都是用这符号的! 当然,VB里没指针,这个表示定义长度,具体定义多长自然是根据你实际需要来定的,改小了的话如果你后面给此变量赋值时,有可能会出问题`` 一定要超过你后面要用到给它赋值的最大长度。
TCHAR cmd[256];
wsprintf(cmd,"status %s volume",shortPath);
TCHAR volume[256];//用cmd命令获取当前音量,是字符串类型的,存放在volume中
mciSendString(cmd,volume, sizeof(volume), 0 );
int v0=atoi(volume);//把字符串类型转为Internet型,要include<stdlibh>
wsprintf(cmd,"setaudio %s volume to %i",shortPath,v0+200);//修改音量
mciSendString(cmd,"",0,NULL);
单首能播了是吧,那你只要启动后遍历一遍把所有文件路径记住放到一个数组里,然后播放一首你开个定时器定时去查这首歌的当前时间和总时间,当两个时间一样时,你就把这首歌Stop然后play数组里的下一首,重新调用一遍即可
以上就是关于mcisendstring函数进度条控制全部的内容,包括:mcisendstring函数进度条控制、长按键盘只希望响应一次的问题MFC 基于对话框模式、关于VB API 函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)