wxWidgets教程(3)- 窗口、对话框与控件

窗口简介

窗口、对话框与控件,其实都是一种窗体,窗口的特征一般有

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、基本窗口类

  • wxWindow.所有窗口类的老祖宗。
  • wxControl.素有控件的老祖宗
  • 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.状态栏

基础窗口类的函数

  • CaptureMouse:捕获鼠标输入
  • 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章




























你可能感兴趣的:(wxWidgets教程(3)- 窗口、对话框与控件)