VS2019 MFC动态创建Slider Control控件 CSliderCtrl类成员函数Create应用创建Slider Control控件[MFC动态创建控件四]

35 篇文章 5 订阅

CSliderCtrl::Create

创建滑块控件,并将其附加到 CSliderCtrl 对象。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

参数

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
一个布尔值,指示要检索的两个合作者窗口句柄中的哪一个。 可以是以下其中一个值:

  • TRUE 检索滑块左侧的合作者的句柄。 如果滑块控件使用 TBS_VERT 样式,则消息会检索滑块上方的合作者。

  • FALSE 检索滑块右侧的合作者的句柄。 如果滑块控件使用 TBS_VERT 样式,则消息会检索滑块下面的合作者。

返回值

指向 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。

CSliderCtrl::GetToolTips

检索分配给滑块控件的 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
指定显示合作者窗口的位置的值。 此值可以为下列值之一:

  • TRUE 如果 "跟踪条" 控件使用 TBS_HORZ 样式,则合作者将显示在跟踪条的左侧。 如果跟踪条使用 TBS_VERT 样式,则合作者会出现在 "跟踪条" 控件的上方。

  • FALSE 如果 "跟踪条" 控件使用 TBS_HORZ 样式,则合作者将显示在跟踪条的右侧。 如果跟踪条使用 TBS_VERT 样式,则合作者会出现在 "跟踪条" 控件下面。

返回值

指向 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_PAGEUPTB_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 控件样式。

CSliderCtrl::SetToolTips

将工具提示控件分配给滑块控件。

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;
	}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值