wxWidgets随笔(11)-wxFrame类

在这里插入图片描述
wxFrame类是一个窗口,它的大小和位置(通常)可以由用户更改。
它通常有粗粗的边框和标题栏,还可以包含菜单栏、工具栏和状态栏。框架可以包含任何不是框架或对话框的窗口。
通过CreateStatusBar()和CreateToolBar()函数创建的具有状态栏和工具栏的框架管理这些窗口并调整GetClientSize()返回的值,以反映应用程序窗口可用的剩余大小。

应用程序通常应该为框架定义一个wxCloseEvent处理程序来响应系统关闭事件,例如,以便清理相关数据和子窗口。

wxFrame处理以下事件:
wxEVT_SIZE:如果框架只有一个子窗口(不包括状态和工具栏),则将调整此子窗口的大小以占用整个框架客户区。如果有两个或多个窗口,则应该通过手动处理wxEVT_SIZE或使用sizer显式地设置它们;
wxEVT_MENU_HIGHLIGHT:默认实现在状态栏的第一个窗格中显示与所选项目相关的帮助字符串(如果有的话)。
风格
这个类支持以下样式:
wxDEFAULT_FRAME_STYLE:
定义为wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wx字幕| wxCLOSE_BOX | wxCLIP_CHILDREN。
wxICONIZE:
显示帧图标化(最小化)。仅Windows。
wxCAPTION:
在框架上添加标题。注意,在大多数系统中,wxMINIMIZE_BOX、wxMAXIMIZE_BOX和wxCLOSE_BOX都需要这个标志,因为如果窗口根本没有标题栏,就无法显示相应的按钮。也就是说,如果没有指定wx字幕,这些样式将被简单地忽略。
wxMINIMIZE:
wxICONIZE相同。仅Windows。
wxMINIMIZE_BOX:
在框架上显示最小化框。
wxMAXIMIZE:
显示最大化的帧。只有Windows和GTK+。
wxMAXIMIZE_BOX:
在框架上显示一个最大化框。请注意,在wxGTK下也必须使用wxRESIZE_BORDER,否则将忽略此样式。
wxCLOSE_BOX:
在框架上显示一个关闭框。
wxSTAY_ON_TOP:
保持在所有其他窗口的顶部,也参见wxFRAME_FLOAT_ON_PARENT。
wxSYSTEM_MENU:
在窗口标题栏中显示包含各种窗口命令列表的系统菜单。与wxMINIMIZE_BOX不同,wxMAXIMIZE_BOX和wxCLOSE_BOX样式可以在不使用wx字幕的情况下使用,至少在Windows下可以使用,并且在这种情况下,系统菜单可以在屏幕上显示。但是,为了在所有平台上保持一致的行为,建议只将它与wx字幕一起使用。
wxRESIZE_BORDER:
显示窗口周围的可调整大小的边框。
wxFRAME_TOOL_WINDOW:
使具有小标题栏的框架被创建;该框架不会出现在Windows或GTK+下的任务栏中。
wxFRAME_NO_TASKBAR:
创建一个正常的框架,但是它不会出现在Windows或GTK+下的任务栏中(注意,它会最小化到Windows下的桌面窗口,这对用户来说可能很奇怪,因此最好只使用这种风格而不使用wxMINIMIZE_BOX风格)。在wxGTK中,只有当窗口管理器支持_NET_WM_STATE_SKIP_TASKBAR提示时,才会使用该标记。
wxFRAME_FLOAT_ON_PARENT:
框架将始终位于其父框架的顶部(与wxSTAY_ON_TOP不同)。使用此样式创建的框架必须具有非空父框架。
wxFRAME_SHAPED:
使用这种样式的窗口可以使用SetShape()方法更改它们的形状。

默认的框架样式用于正常的、可调整大小的框架。要创建用户无法调整大小的框架,可以使用以下样式组合

wxDEFAULT_FRAME_STYLE & ~(wxRESIZE_BORDER | wxMAXIMIZE_BOX)

额外的样式
这个类支持以下额外的样式:
wxFRAME_EX_CONTEXTHELP:
在Windows下,在标题上放置一个查询按钮。当按下时,Windows将进入上下文敏感的帮助模式,如果用户单击应用程序窗口,wxWidgets将发送wxEVT_HELP事件。注意,这是一种扩展样式,在调用Create之前必须通过调用SetExtraStyle进行设置(两步构建)。您不能将此样式与wxMAXIMIZE_BOX或wxMINIMIZE_BOX一起使用,所以您应该对具有此样式的帧使用wxDEFAULT_FRAME_STYLE ~ (wxMINIMIZE_BOX | wxMAXIMIZE_BOX)(对话框默认没有最小化或最大化框)
wxFRAME_EX_METAL:
在Mac OS X上,这种风格的框架将以金属外观显示。这是另一款。

该类发出的事件
这个类发出的事件宏:
EVT_CLOSE(函数):
当用户关闭或以编程方式关闭框架时,处理wxEVT_CLOSE_WINDOW事件(参见wxWindow::Close)。如果有关闭按钮(通常是标题栏右上角的“X”),用户可以生成此事件(参见wxCLOSE_BOX样式)。看到wxCloseEvent。
EVT_ICONIZE(函数):
处理wxEVT_ICONIZE事件。看到wxIconizeEvent。
EVT_MENU_OPEN(函数):
菜单马上就要打开了。看到wxMenuEvent。
EVT_MENU_CLOSE(函数):
菜单刚被关闭。看到wxMenuEvent。
EVT_MENU_HIGHLIGHT (id、函数):
具有指定id的菜单项已突出显示:用于在wxFrame的状态栏中显示帮助提示。看到wxMenuEvent。
EVT_MENU_HIGHLIGHT_ALL(函数):
菜单项已突出显示,即当前选择的菜单项已更改。看到wxMenuEvent。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页