【问题标题】:Can I add an ActiveX control to a Comctlib.Toolbar (mscomctl) control?我可以将 ActiveX 控件添加到 Comctlib.Toolbar (mscomctl) 控件吗?
【发布时间】:2012-07-11 09:13:52
【问题描述】:

$Hello_all,

我正在向 VB6 应用程序添加功能(是的,我知道,这是一项了不起的任务:P),我需要将 ActiveX 控件(它看起来像一个按钮,但做更多事情)放入 comctlib(Microsoft 公共控件) 工具栏。

这可能吗?我不介意使用 Winapi、互操作或任何需要的东西,因为我真的需要这个功能。如果 Comctlib 控件无法做到这一点,是否还有另一个用于 VB6 的工具栏控件,我可以在其中放置其他 ActiveX 控件?

提前感谢您帮助我使用这项过时的技术。

【问题讨论】:

  • 我不确定您要的是什么。 MS Common Controls 6.0 工具栏是一个容器控件,因此您可以在其上放置任何您想要的东西——您只需手动管理它的位置,因为它不是内置组件之一。
  • @Antagony:这根本不是真的。工具栏是按钮的容器。它只有一个按钮集合,您可以在其中添加 Button 对象。
  • 一个容器,与固有的Buttons 集合无关。按钮的Style 属性之一是PlaceHolder - 它在所需位置创建一个空白区域 - 然后您可以简单地将任何 其他控件放置在该空白区域的顶部。如果由于按钮可以选择显示/隐藏而使其位置是动态的,则您必须以编程方式移动放置在那里的任何控件,但这相对简单。
  • 再看一遍会发现 一些 控件没有足够高的优先级出现在占位符按钮的顶部。但是,这很容易通过将它们放置在无边框图片框中来解决。
  • @Antagony:如果您将第二条评论设置为答案,我会接受。谢谢。

标签: vb6 activex toolbar comctl32


【解决方案1】:

除了其固有的Buttons 集合之外,工具栏还充当通用容器。因此,要在现有按钮之间放置您想要的任何(非轻量级*)控件,请插入一个新按钮并将其 Style 属性设置为 PlaceHolder - 这会在所需位置创建一个空白区域 - 并放置您的控件/s 那里。

当然,如果您在运行时动态显示/隐藏/添加/删除按钮,您将不得不手动重新定位任何此类控件。

* 要显示轻量级控件,您可以将它们放在任何其他容器控件中——例如一个无边框的图片框——首先。

【讨论】:

    猜你喜欢
    • 2013-07-28
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    相关资源
    最近更新 更多