SDI中的OLE客户端。如何添加工具栏?

时间:2008-10-17 16:49:53

标签: windows excel menu ole

我有一个SDI,我正在使用OLE加载Excel。我想为此添加一个工具栏,我可以使用它来拥有一个非常突出且明显的“导入”按钮(以及其他一些按钮)。当Excel变为活动状态时,我通过MFC添加的工具栏将全部隐藏或以其他方式从界面中删除。当Excel Ole项目变为活动状态时,有没有办法在工具栏上保持工具栏?

我已经尝试在初始化Excel OLE项后调用FloatControlBar,但它没有任何效果。我想把菜单(它确实保持并正常运行)扭曲到一个工具栏中,但它需要停靠在左侧(需求)并且对命令有大的,可见的图形描述......我还没有找到了一种方法。 CMenu类允许使用图形菜单项,但我没有发现使用菜单命令本身的方法(除了在消息表中获取它的commandid之外)。

1 个答案:

答案 0 :(得分:1)

虽然我对MFC不大,但我在通过COM / OLE与Microsoft Office应用程序交互方面有一些经验。我想如果我理解正确,您正在将Excel文档加载到应用程序中并在OLE窗口中显示? Excel菜单和按钮是否会显示在您的应用程序中?

如果是这种情况,那么到目前为止,向工具栏添加按钮的最简单方法是通过在启动时加载的模板将其添加到excel中。这可以包含您的按钮,然后运行一小段调用代码的VBA代码。甚至可以通过MFC调用您创建的菜单项。

通过OLE实现自动化的一个问题是,即使它非常强大,但是一旦excel意识到它是在一个ole窗口而不是本地运行,似乎有一些限制似乎会发挥作用。这可能会阻止您创建按钮并在ole窗口中显示它们。

希望这有一些用处。