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);
}


发布评论