0

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

我试过FloatControlBar在初始化 Excel OLE 项后调用,但没有效果。我想将菜单(确实保留并正常运行)扭曲成工具栏,但它需要停靠在左侧(要求)并具有用于命令的大而可见的图形描述......我还没有找到了一种方法来做到这一点。CMenu类允许图形菜单项,但我还没有发现一种方法可以对菜单命令本身做很多事情(除了commandid在消息表中获取它)。

4

1 回答 1

1

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

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

通过 OLE 实现自动化的问题之一是,尽管它非常强大,但一旦 excel 意识到它是在 ole 窗口中运行而不是本机运行,似乎就会出现某些限制。这可能会阻止您创建按钮并将它们显示在您的 ole 窗口中。

希望这有点用。

于 2008-10-20T08:47:06.107 回答