2024年4月19日发(作者:)

Spin控件和Edit控件合用,实现Edit控件中数字的增减

Spin控件和Edit控件合用,实现Edit控件中数字的增加或减少。

(1)整数的增减:

CEdit *prow=(CEdit *)GetDlgItem(IDC_EDIT_ROWS);

m_dy(prow);

m_ge(1,100);

m_e(1);

m_(2);

CSpinButtonCtrl m_spinRows;//已在先前定义定义

在Spin控件的属性信息中,styles中选中一、二项,即A自动伙伴、Setbuddy integer.

(2)在上面的例子中使用Spin控件时,可能碰到的一个问题时,Spin控件的上下箭头

默认只能调整整数数值,无法以小数的方式进行调整。要能够以小数方式,比如每次次0.1

的步长增加或减少数值,需要我们编程实现。当用户单击Spin控件的上下箭头时,对话框

会接收到WM_VSCROLL消息,我们在这个消息响应函数中设置编辑框的值就可以了:

void CCommonControlDlg::OnVScroll(UINT nSBCode,UINT nPos,CScrollBar

*pScrollBar)

{

if(SB_ENDSCROLL==nSBCode)

return;

if(pScrollBar->GetDlgCtrlID()==IDC_SPIN)

{

CSpinButtonCtrl* pSpin=(CSpinButtonCtrl)pScrollBar;

CString strValue;

("%3.1f",(double)pSpin->GetPos()/10);

pSpin->GetBuddy()->SetWindowText(strValue);

}

CDialog::OnVScroll(nSBCode,nPos,pScrollBar);

}