一、前言
上一节完成了从文件中读取视频的学习,现在可对其加以进一步的改进,进一步探索更多可用的功能。首先会注意到,所实现的AVI播放器无法在视频播放时进行快速拖动,现在的任务就是通过加入一个滚动条来实现这个功能。
二、函数解析
1、createTrackbar函数
函数功能:创建一个具有指定名称和滑动范围的滑动条,分配一个变量值用于匹配滑块的位置,当滑块位置变化时调用相应的回调函数。创建的滑动条被显示在指定的窗口上。
构造函数:
createTrackbar(const String&trackbarname, 参数1:创建滑动条的名称
const String & winname, 参数2:要显示滑动条的窗口名称
int *value, 参数3:可选指针,指向整型变量,其值反映滑块的位置。在创建时,滑块的位置由这个变量定义。
int count, 参数4:滑动条的最大值,最小值始终为0
TrackbarCallback onChange = 0, 参数5:回调函数
void *userdata = 0 参数6:用户数据
)
滑动条要实现怎样的功能,取决于回调函数的内容。如果参数5和参数6均采用默认值0,实现的功能仅仅是在某一窗口上设置上了一个可滑动的滑动条,没有具体功能,仅此而已。因此回调函数是关键。
回调函数的格式是
void(*