ppt播放进度条问题

 

 

 

  (thingvd开发日志)ppt自动播放时,想知道当前运行的进度,最常见的是用slide现在的位置。若不想用timer定时去得到sliderIndex,则用callback方式是比较不错的选择。示例代码:

class ImPlayerPPT;

typedef void (ImPlayerPPT::*MemberFunction)(int);//Callback函数原型

 

 

class PPTEventSink : public EApplication

public:

ImPlayerPPT* m_obj;

 

MemberFunction m_func;

.....................
STDMETHODIMP SlideShowNextSlide( /*SlideShowWindow**/ IUnknown* Wn);
STDMETHODIMP SlideCurrentCallback( ImPlayerPPT *, void (ImPlayerPPT::*func)(int));

.....................


STDMETHODIMP PPTEventSink::SlideCurrentCallback( ImPlayerPPT *obj, void (ImPlayerPPT::*func)(int))

{

m_obj = obj;

m_func= func;

return S_OK;

}

STDMETHODIMP PPTEventSink::SlideShowNextSlide( /*SlideShowWindow**/ IUnknown* Wn)

{

_SlidePtr slide = m_view->GetSlide(); // m_view is global, assigned in SlideShowBegin()

m_currslide = slide->GetSlideNumber();  // So we can hold position if needed

((m_obj)->*(m_func))(m_currslide);

//((funmap[msg]->obj)->*(funmap[msg]->fun))(para1,para2);

return S_OK; 

}

调用:

int ImPlayerPPT::init()

 


...............................

m_sink = new PPTEventSink;

m_sink->SlideCurrentCallback(this, &ImPlayerPPT::setProcess);

...............................


参考图:
Thinkvd Powerpoint convert video

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值