ppt播放进度条问题

来源:互联网 发布:ecshop java 源码下载 编辑:程序博客网 时间:2024/04/30 23:28

 

 

 

  (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

 

原创粉丝点击