870920 Menu

JUCE类库之PopupMenu 3-3

自定义菜单项(PopupMenu::CustomComponent)

如果要使用别具一格的自定义菜单项,则:

1、写一个类,继承自PopupMenu::CustomComponent类,如需动态绘制,可再继承Timer类,在timerCallback ()函数中修改paint()所需的有关数值,而后repaint()触发重绘。完整的示例如下:

2、弹出式菜单对象在有关方法中添加自定义菜单项(直接new了一个匿名堆对象):

因为继承自PopupMenu::CustomComponent类,该类有其内部的管理机制,所以自定义菜单项类的堆对象无需显式销毁,这一点非常方便。利用菜单项可添加自定义组件这一功能,可以实现很灵活的GUI交互,比如,弹出的菜单项为颜色选择组件、对话框窗口、实时更新绘制内容的组件等等。

应用程序主菜单功能,请参见后文MenubarModel一节。

PopupMenu类的重要成员函数及静态函数:(网站发布,略)

小技巧
 强制退出程序时,如果PopupMenu正在显示,将有可能导致程序崩溃。解决方案:在弹出菜单的类的析构函数中加一句: