标签归档:组件

JUCE类库SplashScreen详解

SplashScreen即通常所说的应用程序启动画面,或者闪屏。该功能的实现非常简单:JUCEApplication程序主体类的initialise()初始化函数中,首先创建SplashScreen对象,显示之。而后再实例化窗口框架类:

// 先创建闪屏所显示的图像
Image img (ImageCache::getFromMemory (BinaryData::sp_jpg,
                                      BinaryData::sp_jpgSize));

// 创建闪屏对象,堆对象。无需显式销毁之,系统自动托管
SplashScreen* splash = new SplashScreen();

// 显示。参数:本组件的名称,所显示的图像,最少显示多久,
// 是否带阴影,鼠标在任意位置点击是否消失
splash->show ("splash", img, 5000, true, true);

继续阅读JUCE类库SplashScreen详解

JUCE类库之PopupMenu 3-2

弹出式菜单的异步回调

由上可知,使用弹出式菜单,show()函数非常关键,但它无法实现异步回调。弹出式菜单属于典型的模态组件,针对所有模态组件,JUCE类库有个异步回调的消息处理机制,体现在PopupMenu类中,就是可替代show()的showMenuAsync()函数。该函数有两个参数:1参为PopupMenu::Options结构体对象,用于设置菜单的各种属性:弹出的菜单附着于哪个组件、位于屏幕的哪个位置、最小宽度、最大列数、菜单项的高度、确保显示哪个菜单项。2参是一个回调函数的指针,其原型函数用于接收用户点选的菜单项ID并进行判断处理。先看一下具体的示例语句:

继续阅读JUCE类库之PopupMenu 3-2

JUCE类库之PopupMenu 3-1

PopupMenu(弹出式菜单)是一个独立的类,没有继承自Component。其实质是弹出一个模态窗口(组件容器),该容器中的每个元素均为组件,即显示了一条文本信息的菜单项,该菜单项具有唯一的ID信息,则信息由添加此菜单项时所指定。鼠标点击某个菜单项,其实是点击了某个组件。点击后,窗口退出模态,消失不见,同时返回所点击的菜单项组件的ID,后续代码或其他函数根据此ID判断哪个菜单项被点选了,从而给出对应的代码,实现具体的功能。
继续阅读JUCE类库之PopupMenu 3-1

CallOutBox标注窗详解

通常将本类对象组合到自定义类中使用,并且是临时使用。CallOutBox类的对象一旦容纳A组件并设置它所依附的B组件之后,将使A组件成为一个带有小箭头的无标题栏窗口,但是此时并不显示在屏幕上。只有当用户点击B组件时,标注类对象才自动弹出。A组件可以包含任何控件和绘制内容,而B组件通常需要自定义一个组件类,在该类的clicked()函数中临时定义并模态显示标注对象。

Jules在其传奇软件Tracktion的操作主界面中,大量使用了这个类的对象(激活“帮助”后,鼠标点击不同的界面元素或控件,将弹出标注窗,窗口里的文本块给出该元素或控件的详细解释)。
继续阅读CallOutBox标注窗详解

DialogWindow对话框详解

DialogWindow对话框相当于DocumentWindow的“简易版本”,标题栏中只有一个关闭按钮,并且可设置按下ESC键后是否关闭本窗口。除此之外,DocumentWindow的一切属性和行为,本类皆拥有。该类有两个静态函数,可快速显示一个包含给定组件的模态对话框 :showDialog()和showModalDialog(),前者无返回值,后者有返回值。

继续阅读DialogWindow对话框详解