如何播放幻灯片.ppt文件并控制其显示的大小
我想做个PPT播放器,让PPT播放的时候显示在整个窗口(不是全屏),可随窗口移动,并可随窗口大小变化时大小也随之改变。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant vPowerPoint;
LPCTSTR lpFileName = "D:\\PLAY_PPT\\演示文稿.pps ";
try
{
vPowerPoint = CreateOleObject( "PowerPoint.Application ");
}
catch(...)
{
ShowMessage( "Error... ");
}
// 使 Powerpoint 界面可视
vPowerPoint.OlePropertySet( "Visible ", true);
// Powerpoint的版本
String strVersion = vPowerPoint.OlePropertyGet( "Version ");
// 打开一个剪辑
vPowerPoint.OlePropertyGet( "Presentations ")
.OleFunction( "Open ", lpFileName, false, false, true);
// 幻灯片总数
int nSlidesCount = vPowerPoint.OlePropertyGet( "ActivePresentation ")
.OlePropertyGet( "Slides ").OlePropertyGet( "Count ");
// 放映这个剪辑
vPowerPoint.OlePropertyGet( "ActivePresentation ")
.OlePropertyGet( "SlideShowSettings ").OleFunction( "Run ");
// 下一个幻灯片
Variant vSlideShowWin = vPowerPoint.OlePropertyGet( "ActivePresentation ")
.OlePropertyGet( "SlideShowWindow ");
vSlideShowWin.OlePropertyGet( "View ").OleFunction( "Next ");
// 跳到第二页
vSlideShowWin.OlePropertyGet( "View ").OleFunction( "GoToSlide ", 2);
// 返回上一页
vSlideShowWin.OlePropertyGet( "View ").OleFunction( "Previous ");
// 跳到最后一页
vSlideShowWin.OlePropertyGet( "View ").OleFunction( "Last ");
// 显示当前幻灯名称
String strSlideName = vSlideShowWin.OlePropertyGet( "View ")
.OlePropertyGet( "Slide ").OlePropertyGet( "Name ");
// 运行某个宏
// vPowerPoint.OleFunction( "Run ", " '1.ppt '!Macro1 ");
// 关闭Powerpoint
vPowerPoint.OleProcedure( "Quit ");
vPowerPoint = Unassigned;
}
用了妖哥的这段代码可以播放PPT,可是幻灯片的大小该如何控制呢?
请大家指导一下谢谢。
[解决办法]
昨晚研究了一会,没有进展。郁闷。用OLEContainer也不行。