我正在尝试将 PowerPoint Viewer 2007 嵌入到我的 WPF 应用程序中。我设法使用 Process 来启动指定文件的查看器,并使用 SetParent 和此类 WinAPI 命令将其放入我的应用程序窗口中。但我的应用程序窗口中的幻灯片总是被部分截断,因为我的应用程序窗口不是全屏的,不幸的是 PowerPoint Viewer 总是全屏启动。知道如何调整幻灯片大小,使其在我的窗口中完美显示吗?
到目前为止,这是我的代码。
Process proc = Process.Start(new ProcessStartInfo(){ FileName = "C:\\Program Files\\Microsoft Office\\Office12\\PptView.exe", Arguments="/S" + "\"" + "C:\\Test.ppt" + "\"", WindowStyle=ProcessWindowStyle.Minimized});
System.Threading.Thread.Sleep(1000);
SetParent(proc.MainWindowHandle, myWindowHandle);
SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
SetWindowPos(proc.MainWindowHandle, (IntPtr)0, 0, 0, 800, 600, SWP_FRAMECHANGED);
InvalidateRect(myWindowHandle, IntPtr.Zero, false);
希望有人能帮忙。非常感谢...
为什么不尝试 MoveWindow(proc.MainWindowHandle, 0, 0, 800, 600, true); ?我在做类似的事情时遇到了问题,但使用的是 Word。 SetWindowPos 没有将屏幕定位在我想要的位置。
我已成功将 PowerPoint Viewer 嵌入到我的 C++ 应用程序中,但存在以下差异:
/S
参数,仅传递 .pptx 文件路径。PPTFrameClass
-> MDIClient
-> mdiClass
-> paneClassDC
paneClassDC
子窗口设置为我的子窗口,并隐藏主窗口