MFC计算器实现步骤和代码

MFC计算器实现步骤和代码

2023年7月17日发(作者:)

MFC计算机程序步骤:

1. 在进入 VC++的第一个界面下,选择 MFC AppWizard(exe) ,并设置工 程名机器所在位置。

2. 在 MFC AppWizard—step1 中选中 Dialog based 选项,建立一个基于

对话框的程序框架。

3. 使用资源编辑器建立对话框

4. 编辑其中的各个控件的属性

5. 插入菜单资源并编辑各项属性

各属性为:

Caption + * / Clear

ID ID_ADD_MENU ID_DIFFERENCE _MENU ID_MULTIPLY_MENU ID_DEVIDE_MENU

ID_CLEAR_MENU

About Exit

ID_ABOUT_MENU ID_EXIT_MENU

6. 添加代码 使用 Class Wizard 给编辑框连接变量 (1) 实现基本的加、减、乘、除的代码的添加。 (2) 添加与菜单相关联的代码 (3) 填添加与滚动条相关联的代码

在MFC AppWized(exe)项目下做。界面自己做

1.在对话框的头文件CalculatorDlg.h中添加#include

2.为CCalculatorDlg类添加成员数据和成员函数

double number1,number2;

int NumberState,OperationState;

void cal();

并在CCalculatorDlg类的构造函数中增加NumberState=1;

3.添加消息按钮afx_msg void OnNumberKey(UINT nID);

afx_msg void OnOperationKey(UINT nID);

4.在文件中BEGIN_MESSAGE_MAP(CMy1Dlg, CDialog)和END_MESSAGE_MAP()间添加代码

ON_COMMAND_RANGE(IDC_NUMBER1,IDC_NUMBER10,OnNumberKey)

ON_COMMAND_RANGE(IDC_NUMBER11,IDC_NUMBER20,OnOperationKey)

5.为成员函数OnNumberKey和OnOperationKey添加代码

void CCalculatorDlg::OnNumberKey(UINT nID)

{

int n=0;

switch(nID)

{

case IDC_NUMBER1:n=1;break;

case IDC_NUMBER2:n=2;break;

case IDC_NUMBER3:n=3;break;

case IDC_NUMBER4:n=4;break;

case IDC_NUMBER5:n=5;break;

case IDC_NUMBER6:n=6;break;

case IDC_NUMBER7:n=7;break; case IDC_NUMBER8:n=8;break;

case IDC_NUMBER9:n=9;break;

case IDC_NUMBER10:n=0;break;

}

if(NumberState==1)

{

m_result=m_result*10+n;

number1=m_result;

UpdateData(FALSE); // 更新编辑框中的值

}

else

{

m_result=m_result*10+n;

number2=m_result;

UpdateData(FALSE);

}

}

void CCalculatorDlg::OnOperationKey(UINT nID)

{

switch(nID)

{

case IDC_NUMBER13: // "/"按钮

OperationState=1;

UpdateData(FALSE);

m_result=0;

NumberState=2;

break;

case IDC_NUMBER14: // "*"按钮

OperationState=2;

UpdateData(FALSE);

m_result=0;

NumberState=2;

break;

case IDC_NUMBER15: // "+"按钮

OperationState=3;

UpdateData(FALSE);

m_result=0;

NumberState=2;

break;

case IDC_NUMBER16: // "-"按钮

OperationState=4;

UpdateData(FALSE);

m_result=0;

NumberState=2; break;

case IDC_NUMBER17: // "C"按钮,撤消用,不需要可以删除

number1=number2=m_result=0;

UpdateData(FALSE);

NumberState=1;

break;

case IDC_NUMBER20: // "="按钮

cal(); // 调用cal成员函数

break;

}

}

6.为成员函数cal()添加代码

void CCalculatorDlg::cal()

{

switch(OperationState)

{

case 1:

m_result=(double)number1/number2;

UpdateData(FALSE); // 更新编辑框中的结果

number1=m_result; // 把此次的运算结果作为下一次运算的第一个操作数

NumberState=2; // 下次输入的数作为第二个操作数

break;

case 2:

m_result=number1*number2;

UpdateData(FALSE); // 更新编辑框中的结果

number1=m_result;

NumberState=2;

break;

case 3:

m_result=number1+number2;

UpdateData(FALSE); // 更新编辑框中的结果

number1=m_result;

NumberState=2;

break;

case 4:

m_result=number1-number2;

UpdateData(FALSE); // 更新编辑框中的结果

number1=m_result;

NumberState=2;

break;

}

OperationState=0;

} 注意按钮的ID号要和程序中的ID号相同!!!!

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689608648a270282.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信