一般都是配合可编辑文本框(CEdit)一起使用,首先在界面上拖动spin control和CEdit控件,然后设置Tap键顺序,必须保持一前一后,如果前者小于后者则上下按键增减文本框值是正常的,否则是反着的;接着再将spin control的属性设置Set Buddy Integer设为True;wrap设置为ture表示允许回绕;
然后再为控件添加变量:CSpinButtonCtrl m_spin;
再在界面初始化(OnInitDialog)中添加
m_spin.SetRange(0,50); //设置选值范围
m_spin.SetBuddy(GetDlgItem(IDC_EDIT1)); //跟edit控件绑定,buddy这个单词的意思就是朋友,伙伴
//绑定好之后你可以在edit上直接输入数字,然后再点spin控件时它会根据你当前的值加或减1.
m_Spin.SetBase(n);//
n
仅为
10
或
16;
m_spin.SetBase(n);//n仅为10或16;
=================================================================
同时配套的有,当可编辑文本框的内容输入不合法时的处理:
应该为编辑框添加EN_CHANGE消息,而不是KillFocus消息。
然后在EN_CHANGE消息处理函数中添加如下代码:
UpdateData(TRUE);//将文本框中的数据取出来放到m_nEditNum里 if ((m_nEditNum>100) || (m_nEditNum<1)) {
MessageBox("输入数字不合法!"); m_nEditNum = 1; UpdateData(FALSE);//将m_nEditNum的值传给可编辑文本框 }