1、旋转按钮控件
旋转按钮控件,也称为上下控件,是一对箭头按钮,用户点击它们来增加或减少某个值,比如一个滚动位置或先是在相应控件中的一个数字。
一个旋转按钮控件通常是与一个相伴的控件一起使用的,这个控件称为“伙伴窗口”。通常将一个旋转按钮控件与一个编辑控件一起使用,以提示用户进行数字输入。点击向上箭头使当前位置向最大值方向移动,而点击向下箭头则使当前位置向最小值的方向移动。
旋转按钮控件的Style属性主要有:
Alignment //控件在伙伴窗口中的位置按钮:Right(右边)、Left(左边)、Unattached(不相干)。
Auto buddy //选中此项,自动选择一个Z-Order中的前一个窗口作为控件的伙伴窗口。
Set buddy integer //选中此项,使控件设置伙伴窗口数值,这个值可以是十进制或十六进制。
Arrow keys //选中此项,当按下向上和向下方向键时,也能增加或减少。
2、旋转按钮控件的基本操作(CSpinButtonCtrl类)
MFC的CSpinButtonCtrl类封装了旋转按钮控件的各种操作函数。
SetBuddy(CWnd* pWndBuddy) //设置Spin控件的伙伴窗口
SetRange(int nLower,int nUpper) //设置Spin控件的上下限
SetPos(int nPos) //设置Spin控件的当前位置
SetAccel(int nAccel,UDACCEL* pAccel) //设置Spin控件加速度,GetAccel则为获取其加速度
3、Spin控件的通知消息
UDN_DELTAPOS //当Spin控件的当前数值要发生改变时向其父窗口发送的。
4、Spin控件使用示例
当单击旋转控件上的按钮时,相应的编辑控件值会增大或减小。其设置的一般步骤为:
(1)、在对话框中放入一个Spin控件和一个编辑控件作为Spin控件的伙伴窗口。
设置Spin控件属性:Auto buddy、Set buddy integer、Arrow keys。设置文本控件属性:Number。
(2)、用ClassWizard为Spin控件定义变量m_Spin,为编辑控件定义变量m_Edit,定义时注意要把m_Edit设置为int型。
(3)、在对话框的OnInitDialog()函数中加入语句:
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_Spin.SetBuddy( GetDlgItem( IDC_EDIT1 ) ); //设置编辑控件为Spin控件的伙伴窗口
m_Spin.SetRange( 0, 10 ); //设置数据范围为0-10
return TRUE;
}
(4)、用ClassWizard为编辑控件添加EN_CHANGE消息处理函数,再加入语句:
void CMyDlg::OnChangeEdit1()
{
m_Edit = m_Spin.GetPos(); //获取Spin控件当前值
}
源文档 <http://blog.sina.com.cn/s/blog_4de6a48a0100apb5.html>