MFC 利用Spin控件增减编辑框控件数值
来源:互联网 发布:简单的sql注入 编辑:程序博客网 时间:2024/06/08 06:49
这两天要做一个对话框对数据进行设置,里面需要用到Spin控件增减Edit button控件里面的数值,网上查找了一个方法,但是只能实现整数的增减,于是另外找了点资料,这里记录一下:
先按照图片布局添加空间,为Edit控件添加CString类型的值作为变量,为Spin添加空间变量,将Spin控件Auto Hscoll,visible,border属性设置为true
这是添加的控件变量:
private:CString m_strEditLine;CString m_strEditPoint;CSpinButtonCtrl m_SpinLine;CSpinButtonCtrl m_SpinPoint;int m_iLeastPoint;//这个是保存Edit空间里面的值为数字double m_dLeastDisLine;<span style="font-family: Arial, Helvetica, sans-serif;">//这个是保存Edit空间里面的值为数字</span>
然后添加下面代码:
void CDlgWFExportSet::OnBnClickedOk(){// TODO: Add your control notification handler code hereUpdateData();if (m_strEditPoint.IsEmpty() || m_strEditLine.IsEmpty()){AfxMessageBox(_T("参数设置不正确!"));return;}m_iLeastPoint = _tstof(m_strEditPoint);m_dLeastDisLine = _tstof(m_strEditLine);CDialogEx::OnOK();}BOOL CDlgWFExportSet::PreTranslateMessage(MSG* pMsg){// TODO: Add your specialized code here and/or call the base classCEdit* editTop = (CEdit*)GetDlgItem(IDC_EDIT_LINE);CEdit* editBottom = (CEdit*)GetDlgItem(IDC_EDIT_POINT);if((GetFocus()==editTop || GetFocus()==editBottom) && (pMsg->message == WM_CHAR)){if(pMsg->wParam<='9' && pMsg->wParam>='0' || pMsg->wParam=='.' || pMsg->wParam == VK_BACK) {return 0;}else{return 1;}}return CDialogEx::PreTranslateMessage(pMsg);}void CDlgWFExportSet::SetEditContent(LPNMUPDOWN pNMUpDown, CString &strEdit){double dStep = 1.00;double dCurValue = _tstof(strEdit);if(pNMUpDown->iDelta == 1) // 如果此值为1 , 说明点击了Spin的往下箭头{dCurValue -= dStep;dCurValue = dCurValue<0?0:dCurValue;}else if(pNMUpDown->iDelta == - 1) // 如果此值为-1 , 说明点击了Spin的往上箭头{dCurValue += dStep;dCurValue = dCurValue<0?0:dCurValue;}strEdit.Format(_T("%.2f"), dCurValue);}void CDlgWFExportSet::OnDeltaposSpinPoint(NMHDR *pNMHDR, LRESULT *pResult){LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);// TODO: Add your control notification handler code here*pResult = 0;UpdateData();SetEditContent(pNMUpDown, m_strEditPoint);int Pos = m_strEditPoint.Find('.');m_strEditPoint = m_strEditPoint.Left(Pos);UpdateData(FALSE);}void CDlgWFExportSet::OnDeltaposSpinLine(NMHDR *pNMHDR, LRESULT *pResult){LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);// TODO: Add your control notification handler code here*pResult = 0;UpdateData();SetEditContent(pNMUpDown, m_strEditLine);UpdateData(FALSE);}
这里注意OnDeltaposSpinPoint和OnDeltaposSpinLine的消息映射的形式:
ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_POINT, &CDlgWFExportSet::OnDeltaposSpinPoint)ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_LINE, &CDlgWFExportSet::OnDeltaposSpinLine)
就这样吧,能够实现下面的效果
0 0
- MFC 利用Spin控件增减编辑框控件数值
- SPin控件增减小数
- 将spin控件置于编辑框内
- Android自定义数值增减控件
- MFC编辑框控件
- MFC控件之spin control
- MFC NumericUpDown Spin控件 CSpinButtonCtrl
- MFC----windows控件----编辑框控件
- spin控件
- MFC中简单使用Spin控件。
- MFC中Spin控件的使用
- MFC中spin control控件的使用方法
- VC控件--用Spin控件完成对字符的增减
- VC控件--用Spin控件完成对字符的增减
- MFC控件 text编辑
- MFC学习之在Edit控件里绑定SPin控件
- MFC实现Spin控件和Edit控件合用
- MFC编辑框控件的用法总结
- Linux常用命令大全
- UE4 Shader Development
- 最惹人讨厌的女同事类型
- java之五篇:戏说java中的强转
- POJ_1698_Alice's Chance(最大流)
- MFC 利用Spin控件增减编辑框控件数值
- 网狐框架问题之——莫名断线
- Android基础入门教程——7.5.1 WebView(网页视图)基本用法
- VC++, CString的各个函数用法详解与小示例
- 各类排序小结
- 利用属性动画Animator实现的一个小demo,
- 《剑指offer》从上往下打印二叉树
- CoreLocation框架的使用
- 指针值加上一个数值的实际意义