支持以下样式:
- wxSL_HORIZONTAL :
水平显示滑块(这是默认设置)。
- wxSL_VERTICAL :
垂直显示滑块。
- wxSL_AUTOTICKS :
显示刻度线。仅限 Windows。
- wxSL_MIN_MAX_LABELS :
显示最小、最大标签(自 wxWidgets 2.9.1 起新增)。
- wxSL_VALUE_LABEL :
显示值标签(自 wxWidgets 2.9.1 起新增)。
- wxSL_LABELS :
显示最小值、最大值和值标签(与 wxSL_VALUE_LABEL 和 wxSL_MIN_MAX_LABELS 相同)。
- wxSL_LEFT :
在左侧显示刻度并强制滑块垂直。
- wxSL_RIGHT :
在右侧显示刻度并强制滑块垂直。
- wxSL_TOP :
在顶部显示刻度。
- wxSL_BOTTOM :
在底部显示刻度(这是默认设置)。
- wxSL_SELRANGE :
允许用户在滑块上选择一个范围。仅限 Windows。
- wxSL_INVERSE :
反转滑块上的最小和最大端点。与 wxSL_SELRANGE 不兼容。
class Simple:public wxFrame
{
public:
Simple(const wxString& title);
protected:
void Slider_OnScroll(wxScrollEvent& event);
void SpinCtrc_Change(wxSpinEvent& event);
wxSlider* slider;
wxSpinCtrl* scValue;
};
Simple::Simple(const wxString& title)
:wxFrame(NULL,-1,title)
{
slider = new wxSlider(this,-1,0,0,100,wxDefaultPosition,wxDefaultSize
,wxSL_HORIZONTAL//水平显示;垂直显示使用wxSL_VERTICAL
|wxSL_LABELS//显示标签
|wxSL_AUTOTICKS//显示刻度线
|wxSL_TOP//顶部显示刻度
|wxSL_INVERSE//反转刻度
);
slider->Bind(wxEVT_COMMAND_SLIDER_UPDATED,wxScrollEventHandler(Simple::Slider_OnScroll),this);
slider->SetValue(50);
scValue = new wxSpinCtrl(this,-1
,""
,wxPoint(-1,-1),wxSize(-1,-1)
,wxALIGN_RIGHT
,slider->GetMin()
,slider->GetMax()
,slider->GetValue()
);
scValue->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED,wxSpinEventHandler(Simple::SpinCtrc_Change),this);
wxBoxSizer* szMain = new wxBoxSizer(wxVERTICAL);
szMain->Add(scValue,0,wxEXPAND|wxALL,10);
szMain->Add(slider,0,wxEXPAND|wxALL,10);
SetSizer(szMain);
Centre();
}
void Simple::Slider_OnScroll(wxScrollEvent& event)
{
scValue->SetValue(slider->GetValue());
}
void Simple::SpinCtrc_Change(wxSpinEvent& event)
{
slider->SetValue(scValue->GetValue());
}