數(shù)值調(diào)節(jié)鈕控件 (Spin Control)

數(shù)值調(diào)節(jié)鈕控件 (Spin Control)(也稱為 up-down 控件)提供一對箭頭鍵,用戶可以單擊它們來調(diào)整數(shù)值。該值稱為當前位置。該位置保持在數(shù)值調(diào)節(jié)鈕范圍內(nèi)。當用戶單擊上箭頭鍵,該位置移向最大值;當用戶單擊下箭頭鍵,該位置移向最小值。
數(shù)值調(diào)節(jié)鈕控件 (Spin Control) 在 MFC 中由類 CSpinButtonCtrl 表示。
注意 數(shù)值調(diào)節(jié)鈕的默認范圍為最大設置到零 (0) 和最小設置到 100。由于最大值小于最小值,因此單擊上箭頭鍵將減小位置,而單擊下箭頭鍵將增大位置。用 CSpinButtonCtrl::SetRange 調(diào)整這些值。
一般情況下,當前位置顯示在同伴控件中。同伴控件稱為“合作者窗口”。有關數(shù)值調(diào)節(jié)鈕控件 (Spin Control)的說明信息,請參見 Platform SDK 中的關于 Up-Down 控件。
數(shù)值調(diào)節(jié)鈕樣式
數(shù)值調(diào)節(jié)鈕 (CSpinButtonCtrl) 的許多設置由樣式控制。可以用對話框編輯器中的“屬性”窗口設置下列樣式。
方向 “垂直”或者“水平”。控制箭頭按鈕的方向。與 UDS_HORZ 樣式相關聯(lián)。
對齊 “取消附加”、“左”和“右”中的一個。控制數(shù)值調(diào)節(jié)鈕的位置。合作者窗口旁邊的數(shù)值調(diào)節(jié)鈕的“左”位置和“右”位置。合作者窗口的寬度將減小以適應數(shù)值調(diào)節(jié)鈕。與 UDS_ALIGNLEFT 和 UDS_ALIGNRIGHT 樣式相關聯(lián)。
自動合作者(AUTO BUDDY)
自動以 Z 順序選擇上一窗口作為數(shù)值調(diào)節(jié)鈕的合作者窗口。在對話框模板上,這是以 Tab 鍵順序在數(shù)值調(diào)節(jié)鈕之前的控件。與 UDS_AUTOBUDDY 樣式相關聯(lián)。
設置合作者整數(shù)(SET BUDDY INT)
導致數(shù)值調(diào)節(jié)鈕控件 (Spin Control) 隨當前位置的更改而增大和減小合作者窗口的標題。與 UDS_SETBUDDYINT 樣式相關聯(lián)。
無千位分隔符(NOTHOUSANDS )
不在合作者窗口標題的數(shù)值中插入千位分隔符。與 UDS_NOTHOUSANDS 樣式相關聯(lián)。
注意:若要用對話框數(shù)據(jù)交換 (DDX) 從合作者控件中獲取整數(shù)值,請設置該樣式。DDX_Text 不接受嵌入的千位分隔符。
換行(WRAP)
當增大或減小的數(shù)值超出了控件范圍時導致位置“換行”。與 UDS_WRAP 樣式相關聯(lián)。
箭頭鍵 當按下上箭頭鍵和下箭頭鍵時導致數(shù)值調(diào)節(jié)鈕增大或減小位置。與 UDS_ARROWKEYS 樣式相關聯(lián)。
數(shù)值調(diào)節(jié)鈕成員函數(shù)
有幾個成員函數(shù)可用于數(shù)值調(diào)節(jié)鈕控件 (Spin Control) (CSpinButtonCtrl)。使用這些函數(shù)更改數(shù)值調(diào)節(jié)鈕的下列屬性。
● 加速
可以調(diào)整用戶按下箭頭按鈕時位置更改的速率。若要使用加速,請使用 SetAccel 和 GetAccel 成員函數(shù)。
基數(shù) 可以更改用于在合作者窗口標題中顯示位置的基數(shù)(10 或 16)。若要使用基數(shù),請使用 GetBase 和 SetBase 成員函數(shù)。
● 合作者窗口
可以動態(tài)設置合作者窗口。若要查詢或更改作為合作者窗口的控件,請使用 GetBuddy 和 SetBuddy 成員函數(shù)。
● 位置
可以查詢和更改位置。若要直接處理位置,請使用 GetPos 和 SetPos 成員函數(shù)。由于合作者控件的標題可能已經(jīng)更改(例如,在合作者為編輯控件 (Edit Control) 的情況下),所以 GetPos 檢索當前標題并相應地調(diào)整位置。
● 范圍
可以更改數(shù)值調(diào)節(jié)鈕的最大和最小位置。默認情況下,最大值設置為 0,最小值設置為 100。由于默認最大值小于默認最小值,所以箭頭按鈕的操作正好與直覺相反。一般情況下,用 SetRange 成員函數(shù)設置范圍。若要查詢范圍,請使用 GetRange。