?? subject_24423.htm
字號:
<p>
序號:24423 發表者:苦悶 發表日期:2002-12-12 16:05:57
<br>主題:有沒有人知道旋轉按紐的用法
<br>內容:哪個高手有沒有關于spin button的程序,發個給我啊,我在vckbase沒有找到的,收到給分。
<br><a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回復者:凱凱 回復日期:2002-12-12 21:12:26
<br>內容:(一)旋轉按鈕控制的主要功能<BR>旋轉按鈕控制(Spin Button Control)又稱為上下控制(Up Down Control),其主要功能是利用一對標有相反方向箭頭的小按鈕,通過點擊它來在一定范圍內改變當前的數值。旋轉按鈕控制的當前值通常顯示在一個稱為伙伴窗口(Buddy Window)的控制中,可以是一個編輯框等。<BR>與其它控制一樣,可以通過設置旋轉按鈕的風格來控制其顯示外觀。其風格如下:<BR>UDS_HORZ 旋轉按鈕是水平方向的<BR>UDS_VERT 旋轉按鈕是垂直方向的<BR>UDS_ALIGNLEFT 旋轉按鈕位于伙伴窗口的左側<BR>UDS_ALIGNRIGHT 旋轉按鈕位于伙伴窗口的右側<BR>UDS_AUTOBUDDY 把旋轉按鈕的伙伴窗口設置為對話框中的順序控制,即TAB順序前一個控 制<BR>UDS_SETBUDDYINT 旋轉按鈕當前值改變時自動改變伙伴窗口標題所顯示的數值<BR>UDS_NOTHOUSANDS 取消顯示的數字中每三位間的“,”分隔符<BR>UDS_WRAP 旋轉按鈕的當前值超出最大(最小)值時自動回繞到最小(最大)值<BR>UDS_ARROWKEYS 可以讓用戶用光標鍵來改變當前值<BR>旋轉按鈕也可以不在伙伴窗口的任何一側。如果位于伙伴窗口的一側,應適當減少伙伴窗口的寬度以容納下旋轉按鈕。<BR>旋轉按鈕控制在MFC類庫中被封裝為CSpinButtonCtrl類,其操作主要是獲取和設置旋轉按鈕的變化范圍、當前數值、伙伴窗口、伙伴窗口顯示當前數據的數值基十進制還是十六進制和用戶按住按鈕時數值變化速度的加速度等。SetRange()函數用來設置范圍,SetPos()函數用來設置當前位置。<BR>(二)旋轉按鈕控制的對象結構<BR>1、旋轉按鈕控制的建立方法<BR>CspinButtonCtrl &SpinButtonCtrl 建立旋轉按鈕控制對象結構<BR>Create 建立旋轉按鈕控制對象并綁定對象<BR>旋轉按鈕控制類CSpinButtonCtrl::Create的調用格式如下:<BR>BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );<BR>其中參數dwStyle用來確定旋轉按鈕控制的風格;參數rect用來確定旋轉按鈕控制的大小和 位置;參數pParentWnd用來確定父窗口指針;參數nID用來確定旋轉按鈕的控制符ID值。<BR>2、旋轉按鈕控制的類屬性<BR>旋轉按鈕控制的類屬性包括設置加速鍵SetAccel、取得加速鍵GetAccel、設置基數SetBase、取得基數GetBase、設置伙伴窗口SetBuddy、取得伙伴窗口GetBuddy、設置當前位置SetPos、取得當前位置GetPos、設置上限下限值SetRange和取得上限下限值GetRange等。<BR>(三)旋轉按鈕控制的應用技巧示例<BR>1、利用應用程序向導AppWizard生成基于對象框的應用程序CSpinDlg;<BR>2、在對話框中設置旋轉按鈕控制和編輯框控制,其ID分別為IDC_SPIN和IDC_EDIT;<BR>在對話框初始代碼中增加控制的范圍和位置:<BR>(1)在SpinDlg.h中設置數據成員,用來表示旋轉按鈕的步長值:<BR>//SlidDlg.h<BR>class CSlidDlg:public Cdialog<BR>{ ......//其它代碼<BR>public:<BR>int m_nStep;<BR>......//其它代碼<BR>}<BR>(2)在SpinDlg.cpp中設置初始狀態<BR>BOOL CSlidDlg::OnInitDialog()<BR>{ Cdialog::OnInitDialog();<BR>......//其它代碼<BR>//TODO:Add extra initialization here<BR>CSpinButtonCtrl *pSpinCtrl=(CSpinButtonCtrl*)GetDlgItem(IDC_SPIN);<BR>pSpinCtrl->SetRange(-50,50);//設置旋轉按鈕范圍<BR>pSpinCtrl->SetPos(10);//設置旋轉按鈕位置<BR>......//其它代碼<BR>return TRUE;<BR>}<BR>(3)完善旋轉按鈕的消息處理,利用類向導ClassWizard增加對編輯框的EN_CHANGE消息處理函數,以使伙伴窗口編輯框的數據隨著旋轉按鈕一起變化:<BR>void CSPinDlg::OnChangeEdit()<BR>{ //TODO:Add your message handler?<BR>m_nStep=GetDlgItemInt(IDC_EDIT);<BR>......//進行其它處理<BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:苦悶 回復日期:2002-12-12 21:48:51
<br>內容:這么多的資料,是不是什么書上有的,有沒有這方面詳細的資料。<BR>假如我想讓編輯框首先顯示一個數據,然后數據隨著增加,減少。<BR>怎么搞。<BR>2002-12-12 22:02:30
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -