共用方式為


CSliderCtrl 類別

提供 Windows 通用滑桿控制項的功能。

語法

class CSliderCtrl : public CWnd

成員

公用建構函式

名稱 描述
CSliderCtrl::CSliderCtrl 建構 CSliderCtrl 物件。

公用方法

名稱 描述
CSliderCtrl::ClearSel 清除滑杆控制項中的目前選取範圍。
CSliderCtrl::ClearTics 從滑杆控制項移除目前的刻度標記。
CSliderCtrl::Create 建立滑杆控制項,並將它附加至 CSliderCtrl 物件。
CSliderCtrl::CreateEx 使用指定的 Windows 擴充樣式建立滑杆控制項,並將它附加至 CSliderCtrl 物件。
CSliderCtrl::GetBuddy 擷取位於指定位置的滑杆控制項夥伴視窗的控制碼。
CSliderCtrl::GetChannelRect 擷取滑杆控制項通道的大小。
CSliderCtrl::GetLineSize 擷取滑杆控制項的線條大小。
CSliderCtrl::GetNumTics 擷取滑杆控制項中的刻度標記數目。
CSliderCtrl::GetPageSize 擷取滑杆控制項的頁面大小。
CSliderCtrl::GetPos 擷取滑杆的目前位置。
CSliderCtrl::GetRange 擷取滑杆的最小和最大位置。
CSliderCtrl::GetRangeMax 擷取滑杆的最大位置。
CSliderCtrl::GetRangeMin 擷取滑杆的最低位置。
CSliderCtrl::GetSelection 擷取目前選取範圍的範圍。
CSliderCtrl::GetThumbLength 擷取目前追蹤列控制項中的滑杆長度。
CSliderCtrl::GetThumbRect 擷取滑杆控制項的拇指大小。
CSliderCtrl::GetTic 擷取指定刻度標記的位置。
CSliderCtrl::GetTicArray 擷取滑杆控制項的刻度標記位置陣列。
CSliderCtrl::GetTicPos 擷取用戶端座標中指定刻度標記的位置。
CSliderCtrl::GetToolTips 擷取指派給滑杆控制項之工具提示控制項的控制碼,如果有的話。
CSliderCtrl::SetBuddy 將視窗指派為滑杆控制項的夥伴視窗。
CSliderCtrl::SetLineSize 設定滑杆控制項的線條大小。
CSliderCtrl::SetPageSize 設定滑杆控制項的頁面大小。
CSliderCtrl::SetPos 設定滑杆的目前位置。
CSliderCtrl::SetRange 設定滑杆的最小和最大位置。
CSliderCtrl::SetRangeMax 設定滑杆的最大位置。
CSliderCtrl::SetRangeMin 設定滑杆的最小位置。
CSliderCtrl::SetSelection 設定目前選取範圍的範圍。
CSliderCtrl::SetThumbLength 設定目前追蹤列控制項中的滑杆長度。
CSliderCtrl::SetTic 設定指定刻度標記的位置。
CSliderCtrl::SetTicFreq 設定每個滑杆控制項遞增的刻度頻率。
CSliderCtrl::SetTipSide 放置追蹤列控制項所使用的工具提示控制項。
CSliderCtrl::SetToolTips 將工具提示控制項指派給滑杆控制項。

備註

「滑杆控制項」(也稱為追蹤列)是包含滑杆和選擇性刻度標記的視窗。 當使用者移動滑杆時,使用滑鼠或方向鍵,控制項會傳送通知訊息來指出變更。

當您想要使用者選取一個不連續的值或一組範圍內的連續值時,滑桿控制項就很有用。 例如,您可以使用滑桿控制項允許使用者透過移動滑桿至指定的刻度標記,設定鍵盤的重複率。

此控制項(因此類別 CSliderCtrl )僅適用于在 Windows 95/98 和 Windows NT 3.51 版和更新版本下執行的程式。

滑杆會在建立滑杆時以遞增的方式移動。 例如,如果您指定滑杆應該有五個範圍,滑杆只能佔用六個位置:滑杆控制項左邊的位置,以及範圍中每個遞增的一個位置。 一般來說,這些位置的每一個都以刻度標記來識別。

您可以使用 的建構函式和 Create 成員函 CSliderCtrl 式來建立滑杆。 建立滑杆控制項之後,您可以使用 中的 CSliderCtrl 成員函式來變更其許多屬性。 您可以進行的變更包括設定滑桿的最小和最大位置、繪製刻度標記、設定選取範圍,以及重新調整滑桿定位。

如需使用 CSliderCtrl 的詳細資訊,請參閱 控制項 和使用 CSliderCtrl

繼承階層架構

CObject

CCmdTarget

CWnd

CSliderCtrl

需求

標頭:afxcmn.h

CSliderCtrl::ClearSel

清除滑杆控制項中的目前選取範圍。

void ClearSel(BOOL bRedraw = FALSE);

參數

bRedraw
重繪旗標。 如果此參數為 TRUE ,則會在清除選取範圍之後重新繪製滑杆,否則不會重新繪製滑杆。

CSliderCtrl::ClearTics

從滑杆控制項移除目前的刻度標記。

void ClearTics(BOOL bRedraw = FALSE);

參數

bRedraw
重繪旗標。 如果此參數為 TRUE ,則會在清除刻度標記之後重繪滑杆,否則不會重新繪製滑杆。

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
指定滑杆控制項的識別碼。

傳回值

如果初始化成功,則為非零;否則為 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
控制項的子視窗識別碼。

傳回值

如果成功則為非零;否則為 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 中所述。 如需滑杆控制項樣式的描述,請參閱 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

擷取指派給滑杆控制項之工具提示控制項的控制碼,如果有的話。

CToolTipCtrl* GetToolTips() const;

傳回值

物件的指標 CToolTipCtrl ,如果 NULL 工具提示未使用,則為 。 如果滑杆控制項不使用 TBS_TOOLTIPS 樣式,則傳回值為 NULL

備註

此成員函式會實作 Win32 訊息 TBM_GETTOOLTIPS 的行為,如 Windows SDK 中所述。 請注意,這個成員函式會 CToolTipCtrl 傳回 物件,而不是控制項的控制碼。

如需滑杆控制項樣式的描述,請參閱 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 ,而不是其傳回值和參數的視窗控制碼。

如需滑杆控制項樣式的描述,請參閱 Windows SDK 中的追蹤列控制項樣式

CSliderCtrl::SetLineSize

設定滑杆控制項的線條大小。

int SetLineSize(int nSize);

參數

nSize
滑杆控制項的新線條大小。

傳回值

前一行大小。

備註

線條大小會影響 和 TB_LINEDOWN 通知的滑杆移動 TB_LINEUP 量。

CSliderCtrl::SetPageSize

設定滑杆控制項的頁面大小。

int SetPageSize(int nSize);

參數

nSize
滑杆控制項的新頁面大小。

傳回值

上一頁大小。

備註

頁面大小會影響 和 TB_PAGEDOWN 通知的滑杆移動 TB_PAGEUP 量。

CSliderCtrl::SetPos

設定滑杆控制項中滑杆的目前位置。

void SetPos(int nPos);

參數

nPos
指定新的滑杆位置。

CSliderCtrl::SetRange

設定滑杆控制項中滑杆的範圍(最小值和最大位置)。

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

設定滑杆控制項中目前選取範圍的開始和結束位置。

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 元件的預設長度。 下一個範例會使用這些變數。

// 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 中的追蹤列控制項樣式

CSliderCtrl::SetToolTips

將工具提示控制項指派給滑杆控制項。

void SetToolTips(CToolTipCtrl* pWndTip);

參數

pWndTip
物件的指標 CToolTipCtrl ,其中包含要搭配滑杆控制項使用的工具提示。

備註

此成員函式會實作 Win32 訊息 TBM_SETTOOLTIPS 的行為,如 Windows SDK 中所述。 使用 樣式建立 TBS_TOOLTIPS 滑杆控制項時,它會建立出現在滑杆旁邊的預設工具提示控制項,以顯示滑杆的目前位置。 如需滑杆控制項樣式的描述,請參閱 Windows SDK 中的追蹤列控制項樣式

另請參閱

MFC 範例 CMNCTRL2
CWnd
階層架構圖表
CProgressCtrl