CSpinButtonCtrl使用起来比较特殊,使用起来,需要注意一些地方.实际的教程也比较少.为了让后人少走弯路,这里写这篇文章以说明.
1.添加EDIT控件
2.添加Spin控件
如果不是这样的顺序的话,使用ctrl+D改变Tab顺序,使spin紧靠edit后面
3.在EDIT控件上面设置group属性(特别注意)
4.在Spin控件上设置
Auto Buddy 为 true
Set Buddy Integer 为 true
Alignment 为 Right Align
5.添加Edit控件 int 变量 m_nNumK;
这个时候点击向下应该可以增加数值
6.在OnInitDialog中添加以下语句
((CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1))->SetRange(-100, 100);
这里在程序中可以写成下面的内容,其中m_timeSpan为Spin控件绑定的变量,m_edtTime为EDIT控件绑定的变量
m_timeSpan.SetBuddy(&m_edtTime);//将Spin空间和EDIT控件绑定
m_timeSpan.SetRange(1, 1000);//调整的范围
这个时候向上的箭头为增加,向下的箭头为减小.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
设置属性:
Auto Buddy(自动取关联控件为TAB顺序前一个)
Set Buddy Interger(使控件设置关联控件数值,这个值可以是十进制或十六进制)
Wrap(数值超过范围时循环)
Arrow keys(当按下向上和向下方向键时,控件可以增加或减小)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
例子:
功能,三个spinbutton,设置RGB,改变下面的方块的颜色
OnInitDialog() { CDialog::OnInitDialog(); CSpinButtonCtrl *pSpinRed =(CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_RED);//设置红色 ASSERT(pSpinRed!=NULL); pSpinRed->SetBuddy(GetDlgItem(IDC_EDIT_RED)); pSpinRed->SetRange(0,255); pSpinRed->SetBase(3); pSpinRed->SetPos(128); CSpinButtonCtrl *pSpinGREEN =(CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_GREEN);//黄色 ASSERT(pSpinGREEN!=NULL); pSpinGREEN->SetBuddy(GetDlgItem(IDC_EDIT_GREEN)); pSpinGREEN->SetRange(0,255); pSpinGREEN->SetBase(1); pSpinGREEN->SetPos(128); CSpinButtonCtrl *pSpinBLUE =(CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_BLUE);//蓝色 ASSERT(pSpinBLUE!=NULL); pSpinBLUE->SetBuddy(GetDlgItem(IDC_EDIT_BLUE)); pSpinBLUE->SetRange(0,255); pSpinBLUE->SetBase(1); pSpinBLUE->SetPos(128); // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE }
以上是我平时用spin控件时的一些总结,后面还会不断总结