dwStyle
指定滑块控件的样式。 将 Windows SDK 中所述的
滑块控件样式
的任意组合应用于控件。
rect
指定滑块控件的大小和位置。 它可以
CRect
是对象或
RECT
结构。
pParentWnd
指定滑块控件的父窗口,通常为
CDialog
。 不得为
NULL
。
nID
指定滑块控件的 ID。
如果初始化成功,则为非零值;否则为0。
可以通过
CSliderCtrl
两个步骤构造。 首先,调用构造函数,然后调用
Create
,它会创建滑块控件,并将其附加到
CSliderCtrl
对象。
根据为设置的
dwStyle
值,滑块控件可以具有垂直或水平方向。 它可以在两侧和两侧都有刻度线,或者两者都不存在。 它还可用于指定连续值的范围。
若要将扩展窗口样式应用于滑块控件,请调用
CreateEx
而不是
Create
。
CSliderCtrl::CreateEx
创建一个 (子窗口) 的控件,并将其与
CSliderCtrl
对象关联。
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
dwExStyle
指定正在创建的控件的扩展样式。 有关扩展 Windows 样式的列表,请参阅 dwExStyle
Windows SDK 中的参数 CreateWindowEx 。
dwStyle
指定滑块控件的样式。 将 Windows SDK 中所述的滑块控件样式的任意组合应用于控件。
rect
对结构的引用 RECT ,该结构描述要创建的窗口的大小和位置(以的 pParentWnd
工作区坐标表示)。
pParentWnd
指向作为控件的父级的窗口的指针。
nID
控件的子窗口 ID。
如果成功,则不为 0;否则为 0。
使用 CreateEx
而不是 Create 来应用扩展的 Windows 样式,该样式由 Windows 扩展样式指定为前言 WS_EX_
。
CSliderCtrl::CSliderCtrl
构造 CSliderCtrl
对象。
CSliderCtrl();
CSliderCtrl::GetBuddy
检索位于给定位置的滑块控件合作者窗口的句柄。
CWnd* GetBuddy(BOOL fLocation = TRUE) const;
fLocation
一个布尔值,指示要检索的两个合作者窗口句柄中的哪一个。 可以是以下其中一个值:
指向 CWnd 对象的指针,该对象是由 fLocation
指定的位置处的合作者窗口; 如果该位置不存在合作者窗口, NULL
则为。
此成员函数实现 Win32 消息 TBM_GETBUDDY 的行为,如 Windows SDK 中所述。 有关 slider 控件样式的说明,请参阅 Windows SDK 中的跟踪条控件样式。
CSliderCtrl::GetChannelRect
检索滑块控件通道的边框的大小和位置。
void GetChannelRect(LPRECT lprc) const;
lprc
一个指向对象的指针 CRect ,该对象包含通道边框(当函数返回时)的大小和位置。
通道是滑块移动的区域,在选择范围时包含突出显示的区域。
CSliderCtrl::GetLineSize
检索滑块控件的线条大小。
int GetLineSize() const;
滑块控件的线条大小。
行大小会影响和 TB_LINEDOWN
通知的滑块移动 TB_LINEUP
量。 行大小的默认设置为1。
CSliderCtrl::GetNumTics
检索滑块控件中的刻度线数。
UINT GetNumTics() const;
滑块控件中的刻度线数。
CSliderCtrl::GetPageSize
检索滑块控件的页面大小。
int GetPageSize() const;
滑块控件的页面大小。
页面大小会影响和 TB_PAGEDOWN
通知的移动 TB_PAGEUP
进度。
CSliderCtrl::GetPos
检索滑块控件中滑块的当前位置。
int GetPos() const;
当前位置。
CSliderCtrl::GetRange
检索滑块控件中滑块的最大和最小位置。
void GetRange(
int& nMin,
int& nMax) const;
nMin
对接收最小位置的整数的引用。
nMax
对接收最大位置的整数的引用。
此函数将值复制到和 nMax
引用 nMin
的整数中。
CSliderCtrl::GetRangeMax
检索滑块控件中滑块的最大位置。
int GetRangeMax() const;
控件的最大位置。
CSliderCtrl::GetRangeMin
检索滑块控件中滑块的最小位置。
int GetRangeMin() const;
控件的最小位置。
CSliderCtrl::GetSelection
检索滑块控件中当前所选内容的起始位置和结束位置。
void GetSelection(
int& nMin,
int& nMax) const;
nMin
引用一个整数,该整数接收当前所选内容的起始位置。
nMax
引用一个整数,该整数接收当前所选内容的结束位置。
CSliderCtrl::GetThumbLength
检索当前跟踪条控件中滑块的长度。
int GetThumbLength() const;
滑块的长度(以像素为单位)。
此方法发送 TBM_GETTHUMBLENGTH 消息,如 Windows SDK 中所述。
CSliderCtrl::GetThumbRect
检索滑块控件中滑块 (thumb) 的边框的大小和位置。
void GetThumbRect(LPRECT lprc) const;
lprc
指向 CRect
对象的指针,该对象包含滑块在函数返回时的边框。
CSliderCtrl::GetTic
检索滑块控件中刻度线的位置。
int GetTic(int nTic) const;
nTic
标识刻度线的从零开始的索引。
指定刻度线的位置; 如果 nTic
未指定有效的索引,则为-1。
CSliderCtrl::GetTicArray
检索数组的地址,该数组包含滑块控件的刻度线的位置。
DWORD* GetTicArray() const;
包含滑块控件的刻度线位置的数组的地址。
CSliderCtrl::GetTicPos
检索滑块控件中刻度线的当前物理位置。
int GetTicPos(int nTic) const;
nTic
标识刻度线的从零开始的索引。
指定刻度线的物理位置(以工作区坐标表示),如果 nTic
不指定有效的索引,则为-1。
检索分配给滑块控件的 tooltip 控件的句柄(如果有)。
CToolTipCtrl* GetToolTips() const;
指向对象的指针,或者 NULL
如果工具提示未使用,则为 CToolTipCtrl 。 如果滑块控件不使用 TBS_TOOLTIPS
样式,则返回值为 NULL
。
此成员函数实现 Win32 消息 TBM_GETTOOLTIPS 的行为,如 Windows SDK 中所述。 请注意,此成员函数将返回一个 CToolTipCtrl
对象,而不是控件的句柄。
有关 slider 控件样式的说明,请参阅 Windows SDK 中的跟踪条控件样式。
CSliderCtrl::SetBuddy
将窗口分配为滑块控件的合作者窗口。
CWnd* SetBuddy(
CWnd* pWndBuddy,
BOOL fLocation = TRUE);
pWndBuddy
指向 CWnd
对象的指针,该对象将被设置为滑块控件的合作者。
fLocation
指定显示合作者窗口的位置的值。 此值可以为下列值之一:
指向 CWnd 之前分配给该位置的滑块控件的对象的指针。
此成员函数实现 Win32 消息 TBM_SETBUDDY 的行为,如 Windows SDK 中所述。 请注意,此成员函数使用指向对象的指针 CWnd
,而不是其返回值和参数的窗口句柄。
有关 slider 控件样式的说明,请参阅 Windows SDK 中的跟踪条控件样式。
CSliderCtrl::SetLineSize
设置滑块控件的线条大小。
int SetLineSize(int nSize);
nSize
滑块控件的新行大小。
上一行大小。
线条大小会影响滑块为 和 通知移动 TB_LINEUP
的 TB_LINEDOWN
量。
CSliderCtrl::SetPageSize
设置滑块控件的页面大小。
int SetPageSize(int nSize);
nSize
滑块控件的新页面大小。
上一页大小。
页面大小会影响和 通知的滑块移动TB_PAGEUP
TB_PAGEDOWN
量。
CSliderCtrl::SetPos
设置滑块控件中滑块的当前位置。
void SetPos(int nPos);
nPos
指定新的滑块位置。
CSliderCtrl::SetRange
设置滑块 (滑块) 的最小和最大位置的范围。
C++复制
void SetRange(
int nMin,
int nMax,
BOOL bRedraw = FALSE);
nMin
滑块的最小位置。
nMax
滑块的最大位置。
bRedraw
重绘标志。 如果此参数为 TRUE
,则滑块在设置范围后重新绘制;否则不会重新绘制滑块。
CSliderCtrl::SetRangeMax
设置滑块控件中滑块的最大范围。
void SetRangeMax(
int nMax,
BOOL bRedraw = FALSE);
nMax
滑块的最大位置。
bRedraw
重绘标志。 如果此参数为 TRUE
,则滑块在设置范围后重新绘制;否则不会重新绘制滑块。
CSliderCtrl::SetRangeMin
设置滑块控件中滑块的最小范围。
void SetRangeMin(
int nMin,
BOOL bRedraw = FALSE);
nMin
滑块的最小位置。
bRedraw
重绘标志。 如果此参数为 TRUE
,则滑块在设置范围后重新绘制;否则不会重新绘制滑块。
CSliderCtrl::SetSelection
在滑块控件中设置当前选择的起始位置和结束位置。
C++复制
void SetSelection(
int nMin,
int nMax);
nMin
滑块的起始位置。
nMax
滑块的结束位置。
CSliderCtrl::SetThumbLength
在当前跟踪条控件中设置滑块的长度。
void SetThumbLength(int nLength);
nLength
[in]滑块的长度(以像素为单位)。
此方法要求将跟踪条控件设置为样式 TBS_FIXEDLENGTH 。
此方法发送消息TBM_SETTHUMBLENGTH,如 Windows SDK 中所述。
第一个代码示例定义用于 m_sliderCtrl
访问当前跟踪条控件的变量 。 该示例还定义了一个 thumbLength
变量 ,用于存储跟踪条控件的 thumb 组件的默认长度。 下一个示例将使用这些变量。
C++复制
// Variable to access the slider control.
CSliderCtrl m_sliderCtrl;
// Length of the slider control's thumb.
int thumbLength;
下一个代码示例将跟踪条控件的 thumb 组件设置为其默认长度的两倍。
// Add extra initialization.
// Modify the size of the slider control's thumb.
// First, set the TBS_FIXEDLENGTH style.
m_sliderCtrl.ModifyStyle(0, TBS_FIXEDLENGTH);
thumbLength = m_sliderCtrl.GetThumbLength();
m_sliderCtrl.SetThumbLength(thumbLength * 2);
// End extra initialization.
CSliderCtrl::SetTic
设置滑块控件中刻度线的位置。
BOOL SetTic(int nTic);
nTic
刻度线的位置。 此参数必须指定正值。
如果设置了刻度线,则不为零;否则为 0。
CSliderCtrl::SetTicFreq
设置刻度线在滑块中的显示频率。
void SetTicFreq(int nFreq);
nFreq
刻度线的频率。
例如,如果频率设置为 2,则滑块范围内每隔一个增量都会显示一个刻度线。 频率的默认设置为 1 (,也就是说,范围中的每个增量都与刻度线) 。
必须使用 样式创建 控件 TBS_AUTOTICKS
,以使用此函数。 有关详细信息,请参阅 CSliderCtrl::Create。
CSliderCtrl::SetTipSide
定位跟踪条控件使用的工具提示控件。
int SetTipSide(int nLocation);
nLocation
表示显示工具提示控件的位置的值。 有关可能值的列表,请参阅 Win32 消息TBM_SETTIPSIDE,如 Windows SDK 中所述。
一个 值,该值表示工具提示控件的以前位置。 返回值等于 的可能值之一 nLocation
。
此成员函数实现 Win32 消息的行为TBM_SETTIPSIDE
,如 Windows SDK 中所述。 使用样式显示工具 TBS_TOOLTIPS
提示的滑块控件。 有关滑块控件样式的说明,请参阅 Windows SDK 中的 Trackbar 控件样式。
将工具提示控件分配给滑块控件。
void SetToolTips(CToolTipCtrl* pWndTip);
pWndTip
指向 对象的指针 CToolTipCtrl ,该对象包含要与滑块控件一起使用的工具提示。
此成员函数实现 Win32 消息的行为TBM_SETTOOLTIPS,如 Windows SDK 中所述。 使用样式创建滑块控件 TBS_TOOLTIPS
时,它会创建显示在滑块旁边的默认工具提示控件,并显示滑块的当前位置。 有关滑块控件样式的说明,请参阅 Windows SDK 中的 Trackbar 控件样式。
本例使用例程
CSliderCtrl cSlider
if (!cSlider.Create(WS_CHILD | WS_VISIBLE|TBS_HORZ| TBS_LEFT| TBS_TOOLTIPS, rect,this,nID))
TRACE("Failed to create slider control\n");
return FALSE;
Slider滑块控件,也是VC中比较常用的一个控件。一般而言它是由一个滑动条,一个滑块和可选
刻度组成。用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有静
态文本框控件或编辑框控件,用于显示相应的值。
1、设置、取得滑动范围:
void SetRange( int nMin, int nMax, BOOL bRedraw = FALSE );
void GetRange( int& nMin, int& nMax ) const;
2、设置、取得按下左右箭头滑动间隔:
int SetLineSiz
CSliderCtrl 类表示滑块控件 (Slider Control),也称为跟踪条。滑块控件 (Slider Control) 是一个包含一个滑块和可选刻度线的窗口。当用户使用鼠标或者箭头键移动滑块时,滑块控件 (Slider Control)
发送通知消息以指示此更改。
当希望用户选择一个不连续的值或者某个范围中一组连续值时,滑块控件 (Slider Control) 很有用。例如