4.7 静态控件

静态控件不响应任何用户输入,只用来显示一些信息或者增加应用程序的美感。

进度条

这是一个水平或者垂直的用来显示进度(通常是时间的进度)的控件。它不产生任何命令事件。下面的代码用来创建一个进度条:

#include "wx/gauge.h"
wxGauge* gauge = new wxGauge(panel, ID_GAUGE,
  200, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL);
gauge->SetValue(50);

在windows平台上的外观:

wxGauge的窗口类型

wxGA_HORIZONTAL 水平进度条.
wxGA_VERTICAL 垂直进度条.
wxGA_SMOOTH 创建一个光滑的进度条,进度条的每一段之间没有空格. 仅适用于Windows.

wxGauge事件

因为进度条只是用来显示信息,因此不产生任何事件。

wxGauge成员函数

GetRange和SetRange用来设置进度条的最大值。

GetValue和SetValue用来获取和设置进度条的当前值。

IsVertical用来检测是否是垂直进度条(否则就是水平的)。

wxStaticText

静态文本控件用来显示一行或者多行的静态文本。

下面的例子创建了一个静态文本控件:

#include "wx/stattext.h"
wxStaticText* staticText = new wxStaticText(panel, wxID_STATIC,
  wxT("This is my &static label"),
  wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);

以及它在windows平台上的外观:

在静态文本控件标签中的前导符"&",在某些平台(比如Windows和GTK+)上用来定义一个快捷键,通过这个快捷键可以直接访问到下一个非静态的控件。

wxStaticText的窗口类型

wxALIGN_LEFT 标签左对齐.
wxALIGN_RIGHT 标签右对齐.
wxALIGN_CENTRE 标签在水平方向上居中对齐.
wxST_NO_AUTORESIZE 默认情况下,静态文本控件会在调用SetLabel以后自动改变大小以使得其大小刚好满足标签文本的需要,如果设置了这个类型,则标签不会改变自己的大小。通常这个类型应该和上面的对齐类型一起使用因为如果没有设置这个类型,自动调整大小使得对齐没有任何意义。

wxStaticText的成员函数

GetLabel和SetLabel用户获取和设置文本标签。

wxStaticBitmap

静态图片控件显示一个图片。

使用下面的代码创建静态图片控件。

#include "wx/statbmp.h"
#include "print.xpm"
wxBitmap bitmap(print_xpm);
wxStaticBitmap* staticBitmap = new wxStaticBitmap(panel, wxID_STATIC,
  bitmap);

这会在作为父窗口的面板或者对话框上显示一个图片,如下图所示:

wxStaticBitmap的窗口类型

没有特别的窗口类型.

wxStaticBitmap的成员函数

GetBitmap和SetBitmap用来获取和设置其显示的图片。

wxStaticLine

这个控件用来在其父窗口上显示一个水平或者垂直的长条,以便作为子窗口的静态分割条。

下面是创建wxStaticLine的代码:

#include "wx/statline.h"
wxStaticLine* staticLine = new wxStaticLine(panel, wxID_STATIC,
    wxDefaultPosition, wxSize(150, -1), wxLI_HORIZONTAL);

以及其在windows平台上的外观:

wxStaticLine的窗口类型

wxLI_HORIZONTAL 水平长条.
wxLI_VERTICAL 垂直长条.

wxStaticLine的成员函数

IsVertical用来检测是否为垂直长条.

wxStaticBox

这个控件用来在一组控件周围显示一个静态的拥有一个可选标签的矩形方框。到目前为止,这个控件不可以作为其它控件的父窗口。它围绕的那些控件是它的的兄弟窗口而非子窗口。它们应该在它后面创建,但是它们拥有同样的父窗口。在将来的版本中,也许会更改这个限制以便它可以同时容纳兄弟窗口和子窗口。

下面是创建一个wxStaticBox的例子代码:

#include "wx/statbox.h"
wxStaticBox* staticBox = new wxStaticBox(panel, wxID_STATIC,
  wxT("&Static box"), wxDefaultPosition, wxSize(100, 100));

以及它在windows平台上的样子:

wxStaticBox的窗口类型

没有特别的窗口类型

wxStaticBox的成员函数

GetLabel和SetLabel用来获取和设置其静态标签。