窗口简介
窗口、对话框与控件,其实都是一种窗体,窗口的特征一般有
1、客户区与非客户区。客户区不包括标题栏、菜单栏、状态栏和工具栏。
2、光标(wxCaret)与鼠标(wxCursor)
3、顶层窗口。wxFrame wxDialog wxPopup,创建的时候,父窗口要填NULL,一般都有标题栏与关闭按钮,可以拖拽。
4、座标。以左上角为原点,向右为x,向下为y。
5、窗口绘制。wxEVT_ERASE BACKGROUND //绘制背景;wxEVT_PAINT //绘制前景
6、颜色与字体。上面的2个事件主宰了前景颜色和背景颜色的设置,若没有定义背景色,则以系统皮肤为准进行绘制。
7、改变大小。wxEVT_SIZE事件用来响应窗口大小的改变。
8、输入。鼠标输入是始终都会收到的,键盘事件只有在获取焦点时才接受的到。焦点事件:wxEVT_SET_FOCUS、wxEVT_KILL_FOCUS
窗口创建与删除
单步创建:
wxButton* m_button1 = new wxButton(this, wxID_ANY, wxT("提示"), wxDefaultPosition, wxDefaultSize, 0);
两步创建:
wxButton* m_button1 = new wxButton();
m_button1->Create(this, wxID_ANY, wxT("提示"), wxDefaultPosition, wxDefaultSize, 0);
窗口创建一般都是new出来的,即在堆上创建,模式对话框可以在堆栈上创建,比较特殊
第二种创建的好处是,可以在create之前,设置窗口的样式等信息:SetExtraStyle-wxWS_EX_VALIDATE_RECURSIVELY
非顶层窗口,一旦create后,如果父窗口可见,那么它们总是可见的,需要调用show(false)来隐藏
顶层窗口,create后,是不可见的,需要调用show或者showModel来显示。
窗口删除,一般是调用其Destroy函数来释放,wxEVT_DESTROY这个事件会在窗口释放之前被调用,而子窗口是自动释放的。
窗口类
1、基本窗口类
- wxControlWithItems.带有子控件的控件的基类
2、顶层窗口类
- wxFrame.框架
- wxMDIParentFrame.管理frame类的类
- wxMDIChildFrame.服务于上面的类
- wxDialog.对话框
- wxPopupWindow..弹出式的,类似提示框的顶层窗口
3、容器窗口类
- wxPanel.一个简单的容器类
- wxNotebook.类似tab标签的容器类
- wxScrolledWindow.拥有滚动条的容器类
- wxSplitterWindow.容纳2个子窗口的容器类
4、非静态控件
- wxButton.按钮
- wxBitmapButton.位图按钮
- wxChoice.选择下拉框
- wxComboBox.可编辑的选择下拉框
- wxCheckBox.复选框
- wxRadioBox.单选框
- wxListBox.列表框
- wxRadioButton.单选按钮
- wxScrollBar.滚动条
- wxSpinButton.拥有增加和减小的按钮
- wxSpinCtrl.在上面的基础上,多了个编辑框
- wxSlider.类似系统音量调节一样的控件
- wxTextCtrl.编辑框,可以单行,可以多行
- wxToggleButton.两种状态的按钮
5、静态控件
- wxStaticText.标签
- wxStaticBitmap.位图
- wxStaticLine.分割线
- wxStaticBox.用一个静态文本框圈中一个区域
- wxGauge.进度条
6、菜单和控件条
- wxMenu.菜单
- wxMenuBar.菜单栏
- wxToolBar.工具栏
- wxStatusBar.状态栏
基础窗口类的函数
- ReleaseMouse:释放前一次的捕获
- Centre,CentreOnParent和CentreOnScreen:居中
- ClearBackground:使用背景色清除当前窗口
- ClientToScreen和ScreenToClient:屏幕坐标转换
- Close:调用wxCloseEvent事件
- ConvertDialogToPixels和ConvertPixelsToDialog:转换对话框的单位,适应字体的宽度
- Destroy:释放窗口
- Enable和Disable:禁用窗口、激活窗口
- FindFocus:查找拥有键盘焦点的窗口
- FindWindow:查找窗口,wxDynamicCast转化
- Fit:自动调整窗口大小
- Freeze和Thaw:优化界面的刷新
- GetAcceleratorTable和GetAcceleratorTable:获取和设置窗口的加速键表
- GetBackgroundColour和SetBackgroundColour:获取和设置背景色
- GetBackgroundStyle和SetBackgroundStyle:获取和设置背景类型
- GetBestSize:以像素为单位,返回窗口最适合的大小
- GetCaret和SetCaret:获取和设置光标
- GetClientSize和SetClientSize:获取和设置客户区的大小
- GetCursor和SetCursor:获取和设置鼠标指针
- GetDefaultItem:获取wxButton::SetDefault设置的子控件的指针
- GetExtraStyle和SetExtraStyle:获取和设置窗口的扩展类型
- GetFont和SetFont:获取和设置字体,SetOwnFont不影响子控件
- GetForegroundColour和SetForegroundColour:获取和设置前景色,SetOwnForegroundColour不影响子控件
- GetHelpText和SetHelpText:设置帮助文本
- GetId和SetId:设置窗口标识符
- GetName和SetName:设置窗口的名称
- GetParent:获取父窗口
- GetPosition:获取相对于父窗口左上角原点的坐标wxPoint
- GetRect:获取窗口的大小和位置wxRect
- GetSize和SetSize:获取窗口的大小wxSize
- GetSizer和SetSizer:获取上层布局的对象
- GetTextExtent:获取当前字符串的像素宽度
- GetToolTip和SetToolTip:设置提示语
- GetUpdateRegion:获取窗口需要刷新的区域
- GetValidator和SetValidator:获取wxValidator对象
- GetWindowStyle和SetWindowStyle:设置窗口的样式类型
- InitDialog:发送wxEVT INIT_DIALOG,为对话框传递数据
- IsEnabled:检测窗口是否可用
- IsExposed:检查点或矩阵是否在需要刷新的区域内
- IsShown:检测窗口是否可见
- IsTopLevel:检测窗口是否是顶层窗口
- Layout:为当前窗口更新布局
- Lower和Raise:可以移动窗口在一个布局内上下
- MakeModal:禁用其他所有的顶层窗口,只保留当前顶层窗口
- Move:移动窗口
- MoveAfterInTabOrder和MoveBeforeInTabOrder:更改窗口的tab顺序
- PopupMenu:在某个位置弹出一个菜单
- Refresh和RefreshRect:刷新窗口或一个矩形区域
- SetFocus:获取键盘焦点
- SetScrollbar:设置滚动条属性
- SetSizeHints:定义窗口最小尺寸,只用于顶层窗口
- Show和Hide:显隐窗口
- transferDataFromWindow和transferDataToWindow:获取和传递数据到窗口对象
- Update:重画过期的区域
- UpdateWindowUI:发送wxUpdateUIEvents,更新一次窗口
- Validate:使用验证对象来验证窗口的数据
- //**********************************下面是wxControlWithItems的方法
- Add和Append:添加子项
- Clear和Delete:清除子项
- FindString:查找索引
- GetCount:获取子项总数
- GetSelection和SetSelection:获取和设置选中的索引
- GetString和SetString:获取和设置某一项的字符串
- Insert:在某个位置插入一个字符串
- IsEmpty:检测控件是否有子项,即是否为空
顶层窗口类的函数
- GetTitle和SetTitle:设置窗口标题
- Iconize:最小化
- Maximize:最大化
- SetIcon:设置窗口图标
- SetShape:设置窗口显示的区域,可以是不规则的
- IsFullScreen和ShowFullScreen:全屏
- /////////////wxMDIParentFrame
- ActivateNext和ActivatePrevious:激活前后文档窗口
- Cascade和Tile:层叠或平铺所有窗口
- GetActiveChild:获取当前激活的窗口
- GetClientWindow:获取包含所有子文档窗口的指针
- /****************wxMDIChildFrame
- Activate:激活本窗口
- Maximize:最大化本窗口
- Restore:恢复
容器窗口类的函数(主要讲一下wxNotebook)
- AddPage:给wxNotebook增加一个页面
- InsertPage:给wxNotebook在某个位置增加一个页面
- DeletePage:删除一个页面
- RemovePage:移除一个页面
- DeleteAllPages:删除所有页面
- AdvanceSelection:循环选择页面
- SetSelection和GetSelection:设置选中页面的索引
- GetPage:根据索引获取页面的窗口指针
- GetPageCount:返回页面总数
- SetPageText:设置页面标题
控件类的函数
- SetLabel和GetLabel:设置控件上的文本
- SetBitmapLabel:设置位图控件的图片
- SetBitmapFocus, SetBitmapSelected和SetBitmapDisabled:设置不同状态的位图图片
- SetDefault:将窗口设置为默认按钮,可以回车点击
- GetValue:获取编辑框的文本
- SetSelection:选中文本框的一部分
- Replace:替换选中部分
- Remove:删除选中部分
- IsChecked:检测当前是否被选中
其他的就不一 一介绍了,请看手册第4章