870920 Menu

DocumentWindow主窗口类详解

DocumentWindow是GUI程序的窗口框架(主窗口),可具有标题栏、最大化、最小化、关闭按钮。该类继承自ToplevelWindow的派生类ResizableWindow(可调整大小的顶级窗口)。

须知:ResizableWindow及其派生类DocumentWindow添加和显示内容组件时,使用setContentOwned()或setContentNonOwned()函数,而不是addAndMakeVisible()函数。并且,不要将按钮、标签、选项卡、Viewport等控件直接添加到ResizableWindow及其派生类DocumentWindow中。正确的做法是:自定义内容组件类,添加各类控件和UI元素,而后本类使用setContentOwned()添加该内容组件。

使用DocumentWindow时,需自定义该类的派生类,即自定义本程序的窗口框架。所定义的窗口框架类对象,由程序主体类(JUCEApplication)所创建并管理。一个典型的窗口框架类如下所示(为方便理解,未做头源分离,全部集中在cpp源文件中):

如果程序运行时图标不需要出现在任务栏中,则重写getDesktopWindowStyleFlags()并返回0:

DocumentWindow无需也不要重写Component类的resized(),moved()等函数。另外,自定义窗口框架类时,可重写ResizableWindow和ToplevelWindow的protected成员。

DocumentWindow类的重要成员函数(略)