实际操作实例:
BOOL C*****Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
UDACCEL cAccel[1];
cAccel[0].nSec = 1;
cAccel[0].nInc = 100;
CEdit *pEdit = (CEdit*)GetDlgItem(Edit控件ID);//此处可以直接设置edit的控制变量
m_FLOWDlgSpin.SetBuddy(pEdit);//Spin Control控件的控制变量
//CSpinButtonCtrl m_FLOWDlgSpin
m_FLOWDlgSpin.SetRange(0,0xFFF);
m_FLOWDlgSpin.SetAccel(1,cAccel);
return TRUE;
}
void *****Dlg::OnBnClickedOk()
{
UpdateData(TRUE);
if ( m_sFlow == 0 )
{
CEdit* pEdit = (CEdit*)GetDlgItem(Edit控件ID);
pEdit->SetFocus();
pEdit->SetSel(0,-1);
return;
}
CDialogEx::OnOK();
}
附相关参考:
/*************************************************************一*******************************************************************/
1、绑定spin和edit
m_Spin.SetBuddy(GetDlgItem(m_Edit1));
m_Spin.SetRange(0,100);
2、实现数值的增减
双击控件添加消息
void CAlarm::OnDeltaposSpin5(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
UpdateData(true);
CString ss;
if(pNMUpDown->iDelta == -1) // 如果此值为-1 , 说明点击了Spin的往下的箭头
{
double a;
a=wcstod(m_Edit1,NULL)-1;
ss.Format(_T("%.1f"),a);
}
else if(pNMUpDown->iDelta == 1) // 如果此值为1, 说明点击了Spin的往上的箭头
{
double a;
a=wcstod(m_Edit1,NULL)+1;
ss.Format(_T("%.1f"),a);
}
m_Edit1=ss;
UpdateData(false);
*pResult = 0;
}
1>首先给该控件关联一个变量
(Control类型的)m_Spin
2>在使用前先通过属性对话框修改它的部分属性
Alignment 属性共有3个选项Unattached,Left,Right Align,按自己的爱好选一个,决定SPIN是在右边还在左