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