CSliderCtrl
類別
提供 Windows 通用滑桿控制項的功能。
語法
class CSliderCtrl : public CWnd
成員
公用建構函式
名稱 | 描述 |
---|---|
CSliderCtrl::CSliderCtrl |
建構 CSliderCtrl 物件。 |
公用方法
備註
「滑桿控件」(也稱為追蹤列)是包含滑桿和選擇性刻度標記的視窗。 當用戶移動滑桿時,使用滑鼠或方向鍵,控件會傳送通知訊息來指出變更。
當您想要使用者選取一個不連續的值或一組範圍內的連續值時,滑桿控制項就很有用。 例如,您可以使用滑桿控制項允許使用者透過移動滑桿至指定的刻度標記,設定鍵盤的重複率。
此控件(因此類別 CSliderCtrl
)僅適用於在 Windows 95/98 和 Windows NT 3.51 版和更新版本下執行的程式。
滑桿會在建立滑桿時以遞增的方式移動。 例如,如果您指定滑桿應該有五個範圍,滑桿只能佔用六個位置:滑桿控件左邊的位置,以及範圍中每個遞增的一個位置。 一般來說,這些位置的每一個都以刻度標記來識別。
您可以使用 的建構函式和 Create
成員函 CSliderCtrl
式來建立滑桿。 建立滑桿控件之後,您可以使用 中的 CSliderCtrl
成員函式來變更其許多屬性。 您可以進行的變更包括設定滑桿的最小和最大位置、繪製刻度標記、設定選取範圍,以及重新調整滑桿定位。
如需使用CSliderCtrl
的詳細資訊,請參閱 控制項和使用 CSliderCtrl
。
繼承階層架構
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 中的追蹤列控件樣式 。