MFC 使用类向导为控件关联变量
来源:互联网 发布:java校验身份证 编辑:程序博客网 时间:2024/05/17 04:54
创建一个对话框工程
设计界面如图
设置控件名称对应的控件ID
操作数1:IDC_FIRSTOPT
组合框 :IDC_SYMBO
操作数2:IDC_SECOPT
结果 :IDC_RET
计算按钮:IDC_CALC
选择运算符组合框控件
在属性框中选择Data选项卡 添加运算符 用分号分隔
设置type为 drop list,owner draw 为No。
右键类向导添加成员变量
向工程中添加一个实现计算功能的类模版
enum Symbo{PLUS,SUB,MUL,DIV}; //定义枚举类型template<class Type> //定义模版类class Ccalc{public:Type Calc(Type &refFirstOpt, Type &refSecOpt, Symbo Opt) //定义模版类函数{ switch (Opt) { case PLUS: return refFirstOpt + refSecOpt; break; case SUB: return refFirstOpt - refSecOpt; break; case MUL: return refFirstOpt*refSecOpt; break; case DIV: return refFirstOpt / refSecOpt; break; default: break; }}};
在对话框资源中双击“计算”按钮编写其消息处理过程,输入以下代码
void CMFCStudyDlg::OnBnClickedCalc(){ CString szFirstOpt, szSecOpt, szSymbo, szResult; m_Symbo.GetWindowText(szSymbo); if (!szSymbo.IsEmpty()) { m_FirstOpt.GetWindowText(szFirstOpt); m_SecOpt.GetWindowText(szSecOpt); double dbFirst = _wtoi(szFirstOpt.GetBuffer(0)); szFirstOpt.ReleaseBuffer(0); double dbSec = _wtoi(szSecOpt.GetBuffer(0)); szSecOpt.ReleaseBuffer(0); Symbo opt; if (szSymbo=="+") { opt = PLUS; } else if (szSymbo=="-") { opt = SUB; } else if (szSymbo="*") { opt = MUL; } else { opt = DIV; } Ccalc<double>CalcObj; //定义类模版对象 double dbRet = CalcObj.Calc(dbFirst, dbSec, opt); //调用Calc方法进行计算 szResult.Format(_T("%-8.2f"), dbRet); //将实数转换为字符串 m_Result.SetWindowText(szResult); //在编辑框中显示结果 szResult.ReleaseBuffer(0); //释放缓冲区 } // TODO: 在此添加控件通知处理程序代码}
其中
double dbFirst = _wtoi(szFirstOpt.GetBuffer(0));
szFirstOpt.ReleaseBuffer(0);
double dbSec = _wtoi(szSecOpt.GetBuffer(0));
是将字符串转换成实数,然后释放缓冲区。
在多字符集中写atof()
中即可,但在 Unicode 字符集中则需改为_wtoi()
。
0 0
- MFC 使用类向导为控件关联变量
- MFC 为控件关联变量
- MFC 为控件关联变量
- MFC控件关联变量
- MFC 控件关联变量
- MFC控件关联变量
- MFC控件关联变量
- MFC 对话框 无法为控件关联变量 已解决!
- MFC控件关联变量总结
- MFC添加成员变量向导(控件变量)
- VC++6.0中MFC图片控件无法利用类向导添加成员变量的解决
- MFC控件关联变量的类型
- vs2010中怎样关联控件变量MFC
- MFC通过类向导删除控件
- MFC 控件变量绑定为数组变量
- 如何使用派生出来的控件?mfc -----为控件添加变量
- MFC 关联变量 EditControl控件 UpdateData CString与double转换
- VS2008 (VS2005) IE8 MFC 类向导 添加成员变量向导 出现脚本错误的解决办法
- this的应用
- 免费的在线表单设计器?试试Zoho Forms
- DIRECTORY_SEPARATOR -- 转自百度百科
- android 4.4以后实现沉浸式状态栏 像最近Android QQ中实现的样式
- Oracle Lsnrctl - 关于oracle监听器的命令和解释
- MFC 使用类向导为控件关联变量
- GENERIC ATTRIBUTE PROFILE (GATT)
- Git 常用命令整理
- POJ 2163 Easy Trading(水~)
- matplotlib中Axes的用法札记
- java中4种修饰符访问权限的区别及详解全过程,final修饰符 ,static修饰符 ,abstract修饰符
- WebViewJavascriptBridge使用(ios自学笔记)
- Hibernate could not resolve property(无法解析属性)
- SSH免密码登陆