如何在可滚动的Tmenu(或Tpopupmenu)中拥有滚动按钮​​?

时间:2009-09-25 08:24:49

标签: delphi winapi

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

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

所以我的问题是:如何在可滚动的Tmenu(或Tpopupmenu)中拥有滚动按钮​​?它甚至可能吗?

2 个答案:

答案 0 :(得分:1)

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

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

此链接描述了how to to this的英文翻译。 或者link on the Embarcadero forum

答案 1 :(得分:0)

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

这并不完美,但通常情况下,主题使用单一颜色来设置菜单项。通过这种方式,滚动按钮将使用背景颜色

着色