1.框架布局设置:
新建工程 “jsq”—>选择 MFC AppWizard(exe)—>选择“基本对话筐”选项,点击完
成 —>根据计算器模式创建 17 个按扭(包括 0—9 十个数字键,加减乘除四个功能键,= 小
数点 和清零)和 1 个编辑框(用于显示运算结果)
2,更改按钮及编辑框属性。
右键十个数字键对其属性进行修改:ID 设置为 ID_0—ID_9,标题为:0—9)
*
+ -
减设为 ID_dec ,— 乘设为 ID_mul ,* 除设为 ID_div ,/)。
/ ”四个功能键以及“= 清零 ”的 ID,标题自定义(如:加设为 ID_add ,+
右键编辑框—>建立类向导—>选择 Member Variables—>选择 Add Variable—>在该对话
框里的 m_ 后填写 display,单击 OK,在单击确定。
3,添加函数。
查看—>建立类向导—>Messages Maps—>选中 Object IDs 中的 IDC_0—>选中 Messages 中的
BN_CLICKED—>Add Function—>OK—>Edit Code—>在{}里添加代码如下
m_display=m_display+"0";
UpdateData(FALSE);
其他“123456789.”以此类推。
在 ClassView 里的 CJsqDlg 类中建立 2 个变量,double operater
其中 operation 用于存放操作数,key 用来标记是哪种四则运算
,
int key”
为四个功能键按钮添加函数及代码
在 FileView 里的 jsqDlg.cpp 里的 “Onadd()”中添加
operater=atof(m_display);
key=1;
m_display="";
UpdateData(FALSE);
其他三个功能函数添加与此相似,只需将 key 值换为 2,3,4
为清零按钮添加代码,在“Onclear ()”里添加
m_display="";
UpdateData(FALSE);
在“Onequ()”里添加
double result=0;
switch(key)
{
case 1:
result = operater + atof(m_display);
break;
case 2:
result = operater - atof(m_display);
break;
case 3:
result = operater * atof(m_display);
break;
case 4:
if (atof(m_display)!=0)
{
result = operater / atof(m_display);
break;
}
else
{
MessageBox("can't use zero!");
}
return;
}
4.将结果转换成字符串,并显示在编辑框内
char ch[50];
memset(ch,0,50);
sprintf(ch,"%f",result);
m_display = ch;
UpdateData(FALSE);
//将 result 的值转换为浮点型存放到 ch 中