【问题标题】:How can I construct and interact with a dynamic (ActiveX) dialog using OLE on Windows?如何在 Windows 上使用 OLE 构建动态 (ActiveX) 对话框并与之交互?
【发布时间】:2017-04-13 12:51:32
【问题描述】:

我查看了 Microsoft Forms 2.0 对象库 (FM20.DLL) 和 Microsoft Windows 公共控件 (comctl32.dll),因为它们都存在(我认为)作为我系统上的 OLE 提供程序。 (我这样做是通过在 Excel 中的 VBA 中打开它们来查看它们的成员的库)并在 VBA 中与它们一起玩。

我更大的问题是我不了解库本身与 ActiveX 之间的关系 - 我如何知道哪些成员可以创建为 ActiveX 对象? (例如,您可以创建“Excel.Application”,但不能创建“MSForms.UserForm”)。

我希望能够使用某个库编写(使用 OLE)表单、显示它、响应事件等。我希望使用已经可用的东西(如上面提到的库,如果可能的话)来防止必须安装额外的软件。

如果您能举个例子(用任何语言)让我开始,那将非常有帮助,非常感谢。

【问题讨论】:

  • 这个问题很难理解,从来都不是实际问题。 ActiveX 控件是显示在可视化设计器工具箱中的控件。是的,Forms 2.0 有一个,它内置在 Excel 中,让您可以做所有想做的事情。听起来你只是还没有找到它。
  • @HansPassant 谢谢,根据您的评论和一个名为 ActiveXHelper 的工具,我设法找到了例如“Forms.Frame.1”作为我可以创建的 ActiveX 对象。但是,我怎么知道这是对象的名称,而不是“MSForms.Frame”或其他名称?我猜您需要访问 ActiveX 注册表才能告诉您这些信息?

标签: windows activex ole


【解决方案1】:

根据 HansPassant 的评论,有效的是使用 MS Forms 2.0,它有一个 ActiveX 对象“Forms.Frame.1”,可以在我的程序中创建和使用。

我发现了一个名为 ActiveXHelper 的程序,它可以让人们查看系统上所有已注册的 ActiveX 对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多