VFP 探讨之 OLE 控件(六):滑尺控件
前面聊简易媒体播放器如何放音频文件时提到过,可以利用滑尺控件拖放来控制音频文件的播放点。本期就聊聊滑尺控件。在FoxPro表单的“插入对象”窗口中选择Microsoft Slider Control即可。滑尺控件也有两个版本:5.0 SP2和6.0,对应文件分别是:Windows主目录\System32\comctl32.ocx和mscomctl.ocx(64位系统的这两个文件在Windows主目录下的SysWOW64文件夹中)。滑尺的作用有两个:指示进度或数值大小(这点与进度条类似)、设置进度或数值大小。
滑尺的主要属性如下:
Value、Min、Max:分别对应滑尺的当前值、最小值、最大值,属性值类型都为数值型;
SmallChange、LargeChange:分别对应用键盘上四个方向键操作时可改变的值的大小、用键盘上Pgup和Pgdn两个键操作时可改变的值的大小,属性值类型为数值型;
Orientation:设置滑尺控件的方向。0(默认):水平方向;1:垂直方向;
TickStyle:设置刻度线的位置。0(默认):底/右。即,当滑尺水平方向时,刻度线在其底部;垂直方向时,刻度线在其右边;1:顶/左;2:两侧;3:不显示刻度线;
TickFrequency:设置刻度线出现的频率,也就是两根刻度线之间的间距。属性值类型为数值型。
滑尺的主要事件如下:
Change:当滑尺的Value属性发生变化时触发;
KeyDown、KeyUp:当用户按下四个方向键时触发。当两个事件都有代码时,前者将先于后者执行;
Scroll:当滑尺的移动块被改变位置时触发;
现在来回顾一下上期的两个问题:
如何显示播放时的进度信息?
在播放器控件的StatusUpdate事件中加入一句“MMC.进度条.Value=MMC.播放器.Position”即可(详见上一期中该事件的完整代码)。即,将滑尺的当前值设置为音频文件当前的播放点数值。由于该事件被设置为每秒执行一次,所以,滑尺的移动块位置也会在每秒刷新一次。如此一来,当音频文件播放时,就出现移动块不断前进的效果了。
如何允许使用者拖动音乐的播放点?
滑尺控件本身并不禁止使用者拖曳移动块,这里要介绍的是音频文件的播放点如何响应这种拖曳,使用户可以随心所欲地控制。
滑尺的Change事件代码:
WITH MMC.播放器
.To=This.Value
.Command="seek"
.Command="play"
ENDWITH
代码分析:先用多媒体控件的To属性把音频文件的播放点定位到滑尺指定的位置,然后分别执行多媒体控件的查找和播放命令即可。是不是很简单呢?