C++GUI之wxWidgets(4)-编写应用涉及的类和方法(1)
创始人
2024-03-19 23:19:02
0

目录

    • wxApp Class
    • wxApp::OnInit()
    • wxFrame Class
    • wxFrame处理的事件

wxApp Class

当wxUSE_GUI=1时,wxApp类代表应用程序本身。
除了wxAppConsole提供的特性外,它还可以跟踪顶部窗口(SetTopWindow()),并添加了对视频模式的支持(SetDisplayMode())
一般来说,仅面向gui的应用程序的应用程序范围设置可以从wxApp(或wxSystemSettings或wxSystemOptions类)中访问。

#include 

在这里插入图片描述

由该类发出的事件

由该类发出的事件的事件宏:
EVT_QUERY_END_SESSION(函数):处理查询结束会话事件,提供成员函数。看到wxCloseEvent。EVT_END_SESSION(函数):处理结束会话事件,提供成员函数。看到wxCloseEvent。EVT_ACTIVATE_APP(函数):处理一个wxEVT_ACTIVATE_APP事件。看到wxActivateEvent。EVT_HIBERNATE(函数):处理hibernate事件。看到wxActivateEvent。EVT_DIALUP_CONNECTED(函数):与网络建立连接。看到wxDialUpEvent。EVT_DIALUP_DISCONNECTED(函数):网络连接中断。看到wxDialUpEvent。EVT_IDLE(函数):处理wxEVT_IDLE事件。看到wxIdleEvent。

![在这里插入图片描述](https://img-blog.csdnimg.cn/c21da7c46b1a44fd90a261277a4d7b0b.png#pic_center)库:wxBase类别:应用和流程管理

wxApp::OnInit()

这必须由应用程序提供,并且通常会创建应用程序的主窗口,可选调用SetTopWindow()。

你可以使用OnExit()来清理这里初始化的东西,前提是函数返回true。

请注意,如果您想使用所提供的被wxWidgets提供的命令行处理

返回true继续处理,返回false立即退出应用程序。

wxFrame Class

在这里插入图片描述 一个frame 是一个窗口,其大小和位置(通常)可以由用户更改。

它通常有厚厚的边框和一个标题栏,并且可以选择

包含一个菜单栏,工具栏和状态栏。一个框架可以包含任何

不是框架或对话框的窗口。

通过CreateStatusBar()和CreateToolBar()函数创建的具有状态栏和工具栏的框架管理这些窗口,并调整GetClientSize()返回的值,以反映应用程序窗口可用的剩余大小。

如果要将框架用作输入表单,则不应将控件创建为其子控件。相反,是wxPanel

应该被创建为框架的唯一子框架,作为父框架

的实际控制(框架将大小面板,所以它总是

填充它的客户区域)。这样做将确保选项卡之间

控制作品和框架背景具有预期的颜色。

此外,由于框架在默认情况下是可调整大小的,所以使用它可能会更好

wxScrolledWindow而不是wxPanel,

确保控件易于访问,而不考虑框架

大小。但是,请考虑使用wxDialog而不是wxFrame是否会更好,在这种情况下,使用这样的面板是不需要的,而且wxDialog还提供了其他好处,如创建专门的大小(例如,按钮,具有其平台正确的顺序)。

wxFrame处理的事件

wxEVT_SIZE:如果 frame刚好有一个子窗口,不计算状态和工具栏,此子对象的大小被调整为整个框架客户区。如果有两个或两个以上的窗口,它们应该通过手动处理wxEVT_SIZE或使用sizers;

wxEVT_MENU_HIGHLIGHT:

如果有的话,默认实现显示帮助字符串,与状态栏第一个窗格中的选定项相关联。

类支持下面样式

wxDEFAULT_FRAME_STYLE:定义为wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN。wxICONIZE:显示图标化的帧(最小化)。仅Windows。wxCAPTION:把一个画框上的文字说明。注意,此标志是由wxMINIMIZE_BOX, wxMAXIMIZE_BOX和wxCLOSE_BOX在大多数系统上作为如果窗口没有标题栏,则无法显示相应的按钮所有人。也就是说,如果没有指定wxCAPTION,这些样式将是简单的忽略了。wxMINIMIZE:和wxICONIZE一样。仅Windows。wxMINIMIZE_BOX:在框架上显示一个最小化框。wxMAXIMIZE:显示最大化的帧。仅适用于Windows和GTK+。wxMAXIMIZE_BOX:在帧上显示一个最大化框。注意,在wxGTK下也必须使用wxRESIZE_BORDER,否则此样式将被忽略。wxCLOSE_BOX:在框架上显示一个关闭框。wxSTAY_ON_TOP:保持在所有其他窗口之上,请参见wxFRAME_FLOAT_ON_PARENT。wxSYSTEM_MENU:显示包含各种windows命令列表的系统菜单在窗口标题栏。不像wxMINIMIZE_BOX, wxMAXIMIZE_BOX和wxCLOSE_BOX样式这种样式至少可以在没有wxCAPTION的情况下使用在Windows下,使系统菜单可用而不显示它这里是屏幕。但是,建议只一起使用与wxCAPTION在所有平台下的一致行为。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)。用这种样式创建的帧必须有一个非null的父帧。wxFRAME_SHAPED:允许使用SetShape()方法改变具有这种样式的窗口的形状。

默认的frame样式是普通的,可调整大小的帧。要创建一个无法由用户调整大小的框架,您可以使用以下方法
风格组合:

wxDEFAULT_FRAME_STYLE & ~(wxRESIZE_BORDER | wxMAXIMIZE_BOX)

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...