【问题标题】:How to ownerdraw the scroll buttons in a scrollable Tmenu (or Tpopupmenu)?如何在可滚动的 Tmenu(或 Tpopupmenu)中绘制滚动按钮?
【发布时间】:2009-09-25 08:24:49
【问题描述】:

通过使用 SetMenuInfo 设置 MIM_MAXHEIGHT,我可以控制 [popup] 菜单的最大高度。当菜单出现时,如果它需要比 MIM_MAXHEIGHT 更高的高度,它将有 2 个滚动按钮(一个在顶部,第二个在底部)

我确实为自己绘制了菜单项,并以各种口味为主题。 但是我的 OnDrawItem 或 OnMeasureItem 永远不会被调用来绘制滚动按钮。

所以我的问题是:如何在可滚动的 Tmenu(或 Tpopupmenu)中绘制滚动按钮?有没有可能?

【问题讨论】:

    标签: delphi winapi


    【解决方案1】:

    看看MSDN documentaiton,我认为你不能绘制这些按钮,因为它们不是菜单项的一部分,而是菜单本身的一部分。

    菜单本身只能定义很少的标志;唯一的修改背景。

    此链接描述(英文翻译)how to to this。 或者这个link on the Embarcadero forum

    【讨论】:

      【解决方案2】:

      可以为菜单设置背景颜色 (MIM_BACKGROUND) 并为 hbrBack 成员提供具有预定义颜色的 Tbrush.handle。

      这并不完美,但主题通常使用单一颜色作为菜单项的背景。通过这种方式,滚动按钮将被背景颜色着色

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-23
        • 1970-01-01
        • 1970-01-01
        • 2016-05-06
        • 1970-01-01
        相关资源
        最近更新 更多